Page 1 of 1

Page Fault Problems

Posted: Tue Oct 13, 2009 11:11 pm
by xixpsychoxix
Ok, since I did the tutorial on virtual memory I have been testing the operating system on multiple sets of hardware. When I test in bochs or on my laptop (pentium M 1.8 ghz dell inspiron 600m) I get page fault errors; however, I have no page fault problem in virtualpc or on my old packard bell legend 2440. can anyone tell me what is going on w/ the page faults?

Re: Page Fault Problems

Posted: Wed Oct 14, 2009 5:19 am
by Mike
Hello,

I cannot look into the issue without knowing the address that it page faults to. Run it in Bochs, and please post the bochs crash log here.

Re: Page Fault Problems

Posted: Wed Oct 14, 2009 4:17 pm
by xixpsychoxix

Code: Select all

00000003553i[BIOS ] $Revision: 1.231.2.1 $ $Date: 2009/06/07 07:49:09 $
00000320056i[KBD  ] reset-disable command received
00000500000i[WGUI ] dimension update x=720 y=400 fontheight=16 fontwidth=9 bpp=8
00003481424i[WGUI ] IME disabled
00039326283i[PIDE ] new BM-DMA address: 0xc000
00039332166i[P2I  ] PCI IRQ routing: PIRQA# set to 0x0b
00039332182i[P2I  ] write: ELCR2 = 0x08
00039332202i[ACPI ] new irq line = 11
00069651595i[BIOS ] Booting from 0000:7c00
00155770000p[WGUI ] >>PANIC<< Window closed, exiting!
00155770000i[CPU0 ] CPU is in protected mode (active)
00155770000i[CPU0 ] CS.d_b = 32 bit
00155770000i[CPU0 ] SS.d_b = 32 bit
00155770000i[CPU0 ] EFER   = 0x00000000
00155770000i[CPU0 ] | RAX=000000000000000c  RBX=0000000000000000
00155770000i[CPU0 ] | RCX=00000000c000317c  RDX=0000000000001f74
00155770000i[CPU0 ] | RSP=0000000000008f8c  RBP=00000000c0000e30
00155770000i[CPU0 ] | RSI=00000000c00000b2  RDI=0000000000000ba9
00155770000i[CPU0 ] |  R8=0000000000000000   R9=0000000000000000
00155770000i[CPU0 ] | R10=0000000000000000  R11=0000000000000000
00155770000i[CPU0 ] | R12=0000000000000000  R13=0000000000000000
00155770000i[CPU0 ] | R14=0000000000000000  R15=0000000000000000
00155770000i[CPU0 ] | IOPL=0 id vip vif ac vm rf nt of df if tf sf zf af pf cf
00155770000i[CPU0 ] | SEG selector     base    limit G D
00155770000i[CPU0 ] | SEG sltr(index|ti|rpl)     base    limit G D
00155770000i[CPU0 ] |  CS:0008( 0001| 0|  0) 00000000 ffffffff 1 1
00155770000i[CPU0 ] |  DS:0010( 0002| 0|  0) 00000000 ffffffff 1 1
00155770000i[CPU0 ] |  SS:0010( 0002| 0|  0) 00000000 ffffffff 1 1
00155770000i[CPU0 ] |  ES:0010( 0002| 0|  0) 00000000 ffffffff 1 1
00155770000i[CPU0 ] |  FS:0010( 0002| 0|  0) 00000000 ffffffff 1 1
00155770000i[CPU0 ] |  GS:0010( 0002| 0|  0) 00000000 ffffffff 1 1
00155770000i[CPU0 ] |  MSR_FS_BASE:0000000000000000
00155770000i[CPU0 ] |  MSR_GS_BASE:0000000000000000
00155770000i[CPU0 ] | RIP=00000000c0000e88 (00000000c0000e88)
00155770000i[CPU0 ] | CR0=0xe0000011 CR2=0x00000000c04043ff
00155770000i[CPU0 ] | CR3=0x0009c000 CR4=0x00000000
00155770000i[CPU0 ] 0x00000000c0000e88>> jmp .+0xfffffffe (0xc0000e88) : EBFE
00155770000i[CMOS ] Last time is 1255536938 (Wed Oct 14 12:15:38 2009)
00155770000i[     ] restoring default signal behavior
00155770000i[CTRL ] quit_sim called with exit code 1


The page fault handler is being called when I run the program under bochs for some reason. This is what i figure was the most relevant info.

Re: Page Fault Problems

Posted: Sun Oct 18, 2009 2:39 am
by Mike
Hello,

Please make the following changes and let us know what happens. There is a bug found in vmmngr_pte.h and vmmngr_pde.h. I86_PTE_FRAME and I86_PDE_FRAME contain an incorrect value and should be this:

Code: Select all

I86_PTE_FRAME 0x80000000
I86_PDE_FRAME 0x80000000

Re: Page Fault Problems

Posted: Sun Oct 18, 2009 5:56 am
by xixpsychoxix
Well, i made those changes but it didn't seem to help. bochs is still page faulting for some reason but it could be me. ill do some more tests and let u guys know, please keep me posted if something else shows up.