[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
wortel - get_page_zero Problem
From: |
Bernhard Poess |
Subject: |
wortel - get_page_zero Problem |
Date: |
Sun, 28 Aug 2005 11:33:25 +0200 |
User-agent: |
Mozilla Thunderbird 1.0.6 (X11/20050827) |
The code for allocating a page which exists at address 0 in wortel
(wortel.c:976) leads to a problem in the following case:
The KIP indicates a region from address 0x0 as conventional memory.
Wortel then tries to get this page granted from sigma0.
But sigma0 already has allocated this page for itself.
Below is the output from KDB for the KIP and the sigma0 dump:
KIP
Memory regions (15):
Physical: 0x00000000 - 0xffffffff shared
0x00000000 - 0x0009f7ff conventional
0x0009f800 - 0x0009ffff architecture specific (2)
0x000dc000 - 0x000fffff architecture specific (2)
0x00100000 - 0x09eeffff conventional
0x09ef0000 - 0x09efefff architecture specific (3)
0x09eff000 - 0x09efffff architecture specific (4)
0x09f00000 - 0x09ffffff conventional
0xfec00000 - 0xfec0ffff architecture specific (2)
0xfee00000 - 0xfee00fff architecture specific (2)
0xfffe0000 - 0xffffffff architecture specific (2)
0x000a0000 - 0x000effff shared
0x09000000 - 0x09ef03ff reserved
0x00100000 - 0x00151fff reserved
Virtual: 0x00000000 - 0xbfffffff conventional
Sigma0 dump:
s0: Free memregion structures: 202
s0:
s0: Free pool (conventional memory):
s0: 0x00001000-0x00001fff 0xffffffff (anythread)
s0: 0x00003000-0x00007fff 0xffffffff (anythread)
s0: 0x00020000-0x00025fff 0xffffffff (anythread)
s0: 0x00027000-0x00027fff 0xffffffff (anythread)
s0: 0x00030000-0x0003dfff 0xffffffff (anythread)
s0: 0x0003f000-0x0003ffff 0xffffffff (anythread)
s0: 0x00049000-0x0009efff 0xffffffff (anythread)
s0: 0x00152000-0x002fffff 0xffffffff (anythread)
s0: 0x0030b000-0x0036ffff 0xffffffff (anythread)
s0: 0x003ed000-0x003fffff 0xffffffff (anythread)
s0: 0x0041b000-0x08ffffff 0xffffffff (anythread)
s0: 0x09f00000-0x09ffffff 0xffffffff (anythread)
s0:
s0: Free pool (non-conventional memory):
s0: 0x0009f000-0x0009ffff 0xffffffff (anythread)
s0: 0x000f0000-0x000fffff 0xffffffff (anythread)
s0: 0x09ef1000-0x09efffff 0xffffffff (anythread)
s0: 0xfec00000-0xfec0ffff 0xffffffff (anythread)
s0: 0xfee00000-0xfee00fff 0xffffffff (anythread)
s0: 0xfffe0000-0xffffffff 0xffffffff (anythread)
s0:
s0: Alloc pool:
s0: 0x00000000-0x00000fff 0x000c0001 (sigma0)
s0: 0x00002000-0x00002fff 0x000c8001 (root server)
s0: 0x00008000-0x0001ffff 0x000c8001 (root server)
s0: 0x00026000-0x00026fff 0x000c8001 (root server)
s0: 0x00028000-0x0002ffff 0x000c8001 (root server)
s0: 0x0003e000-0x0003efff 0x000c8001 (root server)
s0: 0x00040000-0x00048fff 0x000c0001 (sigma0)
s0: 0x000a0000-0x000effff 0xffffffff (anythread)
s0: 0x00100000-0x00151fff 0x00040001 (kernel)
s0: 0x00300000-0x0030afff 0x000c8001 (root server)
s0: 0x00370000-0x003ecfff 0x000c8001 (root server)
s0: 0x00400000-0x0041afff 0x000c8001 (root server)
s0: 0x09000000-0x09ef0fff 0x00040001 (kernel)
s0: 0x0a000000-0xfebfffff 0xffffffff (anythread)
s0: 0xfec10000-0xfedfffff 0xffffffff (anythread)
s0: 0xfee01000-0xfffdffff 0xffffffff (anythread)
I think that the problem comes from a general understanding error, the
fact that the KIP indicates a memory region as conventional not
necessarily indicates that one can get it from s0 via sigma0_get_fpage,
so I suggest to only try getting the zero-page from s0 and if that
failes just discard that fact and continue booting.
Bernhard Poess
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- wortel - get_page_zero Problem,
Bernhard Poess <=