[Barrelfish-users] various boot issues

Simon Gerber simon.gerber at inf.ethz.ch
Thu Aug 15 17:37:02 CEST 2013


Hi Malte,

The number of caps that you can fit into the top-level cnode is
currently 32 (as the top-level cnode is 4kB and each cap 128 bytes).
I've written a small C program that simulates create_phys_cap for your
machine (see attachement) and without aligning both the beginning and
end of each of the small regions to a sufficiently large power of two
(the way the system currently tries to do things) you would need 127
capability slots.

Can you try the attached patch which should increase the number of
super cnode slots to 256 (it doesn't break things for me but I haven't
tested it rigorously).

-- Simon

On 15 August 2013 11:00, Malte Schwarzkopf
<malte.schwarzkopf at cl.cam.ac.uk> wrote:
> Hi Simon and Kornilios,
>
> Thanks for helping investigate this issue :-)
>
> Here's the output Simon asked for (full log with loglevel=5, logmask=1
> attached in text file):
>
> ------------------8<---------------------------
> kernel 0: MMAP 0--90000 Type 1
> kernel 0: MMAP 90000--a0000 Type 2
> kernel 0: MMAP e0000--100000 Type 2
> kernel 0: MMAP 100000--b897a000 Type 1
> kernel 0: RAM 6900000--b897a000
> kernel 0: MMAP b897a000--b8a4e000 Type 3
> kernel 0: platform b897a000--b8a4e000
> kernel 0: MMAP b8a4e000--ba9ac000 Type 1
> kernel 0: RAM b8a4e000--ba9ac000
> kernel 0: MMAP ba9ac000--ba9bd000 Type 2
> kernel 0: platform ba9ac000--ba9bd000
> kernel 0: MMAP ba9bd000--ba9c9000 Type 1
> kernel 0: RAM ba9bd000--ba9c9000
> kernel 0: create_caps_to_cnode: Cannot create more caps in CNode
> kernel 0 PANIC! kernel assertion "err_is_ok(err)" failed at
> ../kernel/arch/x86_64/startup_arch.c:421
> ------------------8<---------------------------
>
> I'm not 100% sure how to read this, but it would suggest to me that the
> problem actually originates in a region much earlier than the giant 128 GB
> RAM one (which is at 0x100000000 - 0x2040000000). That said, the RAM region
> 0x6900000 - 0xb897a000 does appear to be poorly aligned (although it is on a
> 1M boundary, and was re-aligned from 0x6880000, cf. "aligning free memory
> start to 0x6900000 (was 0x6880000): wasting 512 kB"); the big one at
> 0x100000000, however, is on a 4G boundary.
>
> It sounds like the most satisfactory fix is indeed to make sure that the RAM
> regions are aligned to sufficiently large power-of-two values. What number
> of caps can exist in the top-level cnode (i.e. what number are we trying to
> reach by aligning things)?
>
> Cheers,
> Malte
>
>
> On 15/08/13 09:36, Simon Gerber wrote:
>>
>> Hi Malte,
>>
>> can you try to boot with the following lines for the kernel (in menu.lst):
>>
>> kernel /x86_64/sbin/elver loglevel=5 logmask=1
>> module /x86/64/sbin/cpu loglevel=5 logmask=1
>>
>> This should turn more debugging output on (all the
>> debug(SUBSYS_STARTUP, ...) lines to be precise). I'm mostly interested
>> in the output from create_phys_caps() which should tell us if there is
>> a RAM region that causes the issue.
>>
>> This should allow you to see what memory regions get put into the
>> top-level cnode that holds RAM capabilities. The cause for the bug
>> you're experiencing is that every RAM capability needs to have a size
>> that is a power of two, and if some RAM region starts at a not very
>> well aligned address you're using a lot of capability slots to create
>> smaller RAM caps (e.g. if there is a region that is only aligned to
>> 4k, you're going to create a 4k RAM cap, then an 8k RAM cap and so on
>> until you hit some address that's better aligned, e.g. to a gigabyte
>> and then you can start creating large RAM caps).
>>
>> As Kornilios said though, we don't have a proper fix for the issue
>> (that being to make the top-level cnode bigger) because there are
>> assumptions in the code about the size of that cnode that aren't
>> expressed as #defines. If you look in
>> kernel/arch/x86_64/startup_arch.c:688 you'll find the band-aid fix
>> that we implemented when we were running into the same issue. What we
>> do there is to make sure that the RAM region that was used in the
>> early boot allocator (alloc_phys()) is aligned to a 1M boundary. You
>> might want to use the same band-aid fix for any RAM regions that are
>> not aligned to at least a 1M boundary to make the problem less
>> pronounced.
>>
>> Hope this sheds some more light on the issue,
>>
>> -- Simon
>>
>> On 14 August 2013 15:53, Malte Schwarzkopf
>> <malte.schwarzkopf at cl.cam.ac.uk> wrote:
>>>
>>> Hi Manuel, Simon and others,
>>>
>>> Thanks a lot for getting back to me! I'll dig a little deeper on the
>>> 64-bit side of things; the use of the x86_32 machine was mainly due to a
>>> shortage of suitable hardware, and it's not blocking anything if that
>>> one doesn't work (I'll dig into it nonetheless if I get a chance,
>>> though).
>>>
>>> I tried booting (with the debug flags turned on) on one of our latest
>>> Sandy Bridge Intel machines, and got the below output, crashing
>>> somewhere in startup_arch.c:
>>>
>>> --------------8<--------------------
>>> Kernel starting at address 0xffffff8005a65000
>>> Barrelfish CPU driver starting on x86_64 apic_id 0
>>> kernel 0: Measured 99758001 APIC timer counts in one RTC second, 210701
>>> data points.
>>> kernel 0: Measured 3292025 TSC counts per ms, 99 data points. Average
>>> jitter 13 TSC ticks.
>>> spawn module: x86_64/sbin/init
>>> aligning free memory start to 0x6900000 (was 0x6880000): wasting 512 kB
>>> Raw MMAP from BIOS
>>>          0x00000000 - 0x00090000 Type: 1 Length: 0x90000
>>>          0x00090000 - 0x000a0000 Type: 2 Length: 0x10000
>>>          0x000e0000 - 0x00100000 Type: 2 Length: 0x20000
>>>          0x00100000 - 0xb897a000 Type: 1 Length: 0xb887a000
>>>          0xb897a000 - 0xb8a4e000 Type: 3 Length: 0xd4000
>>>          0xb8a4e000 - 0xba9ac000 Type: 1 Length: 0x1f5e000
>>>          0xba9ac000 - 0xba9bd000 Type: 2 Length: 0x11000
>>>          0xba9bd000 - 0xba9c9000 Type: 1 Length: 0xc000
>>>          0xba9c9000 - 0xba9de000 Type: 2 Length: 0x15000
>>>          0xba9de000 - 0xbaadc000 Type: 1 Length: 0xfe000
>>>          0xbaadc000 - 0xbaadd000 Type: 2 Length: 0x1000
>>>          0xbaadd000 - 0xbaae7000 Type: 1 Length: 0xa000
>>>          0xbaae7000 - 0xbaaea000 Type: 2 Length: 0x3000
>>>          0xbaaea000 - 0xbab3a000 Type: 1 Length: 0x50000
>>>          0xbab3a000 - 0xbab57000 Type: 2 Length: 0x1d000
>>>          0xbab57000 - 0xbab5c000 Type: 1 Length: 0x5000
>>>          0xbab5c000 - 0xbab60000 Type: 2 Length: 0x4000
>>>          0xbab60000 - 0xbab72000 Type: 1 Length: 0x12000
>>>          0xbab72000 - 0xbab82000 Type: 2 Length: 0x10000
>>>          0xbab82000 - 0xbabbd000 Type: 1 Length: 0x3b000
>>>          0xbabbd000 - 0xbabc1000 Type: 2 Length: 0x4000
>>>          0xbabc1000 - 0xbacd2000 Type: 1 Length: 0x111000
>>>          0xbacd2000 - 0xbacd9000 Type: 2 Length: 0x7000
>>>          0xbacd9000 - 0xbad44000 Type: 1 Length: 0x6b000
>>>          0xbad44000 - 0xbad49000 Type: 2 Length: 0x5000
>>>          0xbad49000 - 0xbad60000 Type: 1 Length: 0x17000
>>>          0xbad60000 - 0xbad6f000 Type: 2 Length: 0xf000
>>>          0xbad6f000 - 0xbadb6000 Type: 1 Length: 0x47000
>>>          0xbadb6000 - 0xbadde000 Type: 2 Length: 0x28000
>>>          0xbadde000 - 0xbae00000 Type: 1 Length: 0x22000
>>>          0xbae00000 - 0xbb138000 Type: 2 Length: 0x338000
>>>          0xbb138000 - 0xbd9f7000 Type: 1 Length: 0x28bf000
>>>          0xbd9f7000 - 0xbdbf7000 Type: 2 Length: 0x200000
>>>          0xbdbf7000 - 0xbdcdd000 Type: 1 Length: 0xe6000
>>>          0xbdcdd000 - 0xbdde7000 Type: 2 Length: 0x10a000
>>>          0xbdde7000 - 0xbde2a000 Type: 4 Length: 0x43000
>>>          0xbde2a000 - 0xbde2b000 Type: 3 Length: 0x1000
>>>          0xbde2b000 - 0xbde2d000 Type: 4 Length: 0x2000
>>>          0xbde2d000 - 0xbde2e000 Type: 3 Length: 0x1000
>>>          0xbde2e000 - 0xbdefe000 Type: 4 Length: 0xd0000
>>>          0xbdefe000 - 0xbdf00000 Type: 3 Length: 0x2000
>>>          0xbdf00000 - 0xbdf03000 Type: 4 Length: 0x3000
>>>          0xbdf03000 - 0xbdf1f000 Type: 3 Length: 0x1c000
>>>          0xbdf1f000 - 0xbdfac000 Type: 4 Length: 0x8d000
>>>          0xbdfac000 - 0xbe000000 Type: 1 Length: 0x54000
>>>          0x100000000 - 0x2040000000 Type: 1 Length: 0x1f40000000
>>>          0xbe000000 - 0xd0000000 Type: 2 Length: 0x12000000
>>>          0xfec00000 - 0xfec01000 Type: 2 Length: 0x1000
>>>          0xfed19000 - 0xfed1a000 Type: 2 Length: 0x1000
>>>          0xfed1c000 - 0xfed20000 Type: 2 Length: 0x4000
>>>          0xfee00000 - 0xfee01000 Type: 2 Length: 0x1000
>>>          0xffa20000 - 0x100000000 Type: 2 Length: 0x5e0000
>>> Sorted MMAP
>>>          0x00000000 - 0x00090000 Type: 1 Length: 0x90000
>>>          0x00090000 - 0x000a0000 Type: 2 Length: 0x10000
>>>          0x000e0000 - 0x00100000 Type: 2 Length: 0x20000
>>>          0x00100000 - 0xb897a000 Type: 1 Length: 0xb887a000
>>>          0xb897a000 - 0xb8a4e000 Type: 3 Length: 0xd4000
>>>          0xb8a4e000 - 0xba9ac000 Type: 1 Length: 0x1f5e000
>>>          0xba9ac000 - 0xba9bd000 Type: 2 Length: 0x11000
>>>          0xba9bd000 - 0xba9c9000 Type: 1 Length: 0xc000
>>>          0xba9c9000 - 0xba9de000 Type: 2 Length: 0x15000
>>>          0xba9de000 - 0xbaadc000 Type: 1 Length: 0xfe000
>>>          0xbaadc000 - 0xbaadd000 Type: 2 Length: 0x1000
>>>          0xbaadd000 - 0xbaae7000 Type: 1 Length: 0xa000
>>>          0xbaae7000 - 0xbaaea000 Type: 2 Length: 0x3000
>>>          0xbaaea000 - 0xbab3a000 Type: 1 Length: 0x50000
>>>          0xbab3a000 - 0xbab57000 Type: 2 Length: 0x1d000
>>>          0xbab57000 - 0xbab5c000 Type: 1 Length: 0x5000
>>>          0xbab5c000 - 0xbab60000 Type: 2 Length: 0x4000
>>>          0xbab60000 - 0xbab72000 Type: 1 Length: 0x12000
>>>          0xbab72000 - 0xbab82000 Type: 2 Length: 0x10000
>>>          0xbab82000 - 0xbabbd000 Type: 1 Length: 0x3b000
>>>          0xbabbd000 - 0xbabc1000 Type: 2 Length: 0x4000
>>>          0xbabc1000 - 0xbacd2000 Type: 1 Length: 0x111000
>>>          0xbacd2000 - 0xbacd9000 Type: 2 Length: 0x7000
>>>          0xbacd9000 - 0xbad44000 Type: 1 Length: 0x6b000
>>>          0xbad44000 - 0xbad49000 Type: 2 Length: 0x5000
>>>          0xbad49000 - 0xbad60000 Type: 1 Length: 0x17000
>>>          0xbad60000 - 0xbad6f000 Type: 2 Length: 0xf000
>>>          0xbad6f000 - 0xbadb6000 Type: 1 Length: 0x47000
>>>          0xbadb6000 - 0xbadde000 Type: 2 Length: 0x28000
>>>          0xbadde000 - 0xbae00000 Type: 1 Length: 0x22000
>>>          0xbae00000 - 0xbb138000 Type: 2 Length: 0x338000
>>>          0xbb138000 - 0xbd9f7000 Type: 1 Length: 0x28bf000
>>>          0xbd9f7000 - 0xbdbf7000 Type: 2 Length: 0x200000
>>>          0xbdbf7000 - 0xbdcdd000 Type: 1 Length: 0xe6000
>>>          0xbdcdd000 - 0xbdde7000 Type: 2 Length: 0x10a000
>>>          0xbdde7000 - 0xbde2a000 Type: 4 Length: 0x43000
>>>          0xbde2a000 - 0xbde2b000 Type: 3 Length: 0x1000
>>>          0xbde2b000 - 0xbde2d000 Type: 4 Length: 0x2000
>>>          0xbde2d000 - 0xbde2e000 Type: 3 Length: 0x1000
>>>          0xbde2e000 - 0xbdefe000 Type: 4 Length: 0xd0000
>>>          0xbdefe000 - 0xbdf00000 Type: 3 Length: 0x2000
>>>          0xbdf00000 - 0xbdf03000 Type: 4 Length: 0x3000
>>>          0xbdf03000 - 0xbdf1f000 Type: 3 Length: 0x1c000
>>>          0xbdf1f000 - 0xbdfac000 Type: 4 Length: 0x8d000
>>>          0xbdfac000 - 0xbe000000 Type: 1 Length: 0x54000
>>>          0xbe000000 - 0xd0000000 Type: 2 Length: 0x12000000
>>>          0xfec00000 - 0xfec01000 Type: 2 Length: 0x1000
>>>          0xfed19000 - 0xfed1a000 Type: 2 Length: 0x1000
>>>          0xfed1c000 - 0xfed20000 Type: 2 Length: 0x4000
>>>          0xfee00000 - 0xfee01000 Type: 2 Length: 0x1000
>>>          0xffa20000 - 0x100000000 Type: 2 Length: 0x5e0000
>>>          0x100000000 - 0x2040000000 Type: 1 Length: 0x1f40000000
>>> Preprocessed MMAP
>>>          0x00000000 - 0x00090000 Type: 1 Length: 0x90000
>>>          0x00090000 - 0x000a0000 Type: 2 Length: 0x10000
>>>          0x000e0000 - 0x00100000 Type: 2 Length: 0x20000
>>>          0x00100000 - 0xb897a000 Type: 1 Length: 0xb887a000
>>>          0xb897a000 - 0xb8a4e000 Type: 3 Length: 0xd4000
>>>          0xb8a4e000 - 0xba9ac000 Type: 1 Length: 0x1f5e000
>>>          0xba9ac000 - 0xba9bd000 Type: 2 Length: 0x11000
>>>          0xba9bd000 - 0xba9c9000 Type: 1 Length: 0xc000
>>>          0xba9c9000 - 0xba9de000 Type: 2 Length: 0x15000
>>>          0xba9de000 - 0xbaadc000 Type: 1 Length: 0xfe000
>>>          0xbaadc000 - 0xbaadd000 Type: 2 Length: 0x1000
>>>          0xbaadd000 - 0xbaae7000 Type: 1 Length: 0xa000
>>>          0xbaae7000 - 0xbaaea000 Type: 2 Length: 0x3000
>>>          0xbaaea000 - 0xbab3a000 Type: 1 Length: 0x50000
>>>          0xbab3a000 - 0xbab57000 Type: 2 Length: 0x1d000
>>>          0xbab57000 - 0xbab5c000 Type: 1 Length: 0x5000
>>>          0xbab5c000 - 0xbab60000 Type: 2 Length: 0x4000
>>>          0xbab60000 - 0xbab72000 Type: 1 Length: 0x12000
>>>          0xbab72000 - 0xbab82000 Type: 2 Length: 0x10000
>>>          0xbab82000 - 0xbabbd000 Type: 1 Length: 0x3b000
>>>          0xbabbd000 - 0xbabc1000 Type: 2 Length: 0x4000
>>>          0xbabc1000 - 0xbacd2000 Type: 1 Length: 0x111000
>>>          0xbacd2000 - 0xbacd9000 Type: 2 Length: 0x7000
>>>          0xbacd9000 - 0xbad44000 Type: 1 Length: 0x6b000
>>>          0xbad44000 - 0xbad49000 Type: 2 Length: 0x5000
>>>          0xbad49000 - 0xbad60000 Type: 1 Length: 0x17000
>>>          0xbad60000 - 0xbad6f000 Type: 2 Length: 0xf000
>>>          0xbad6f000 - 0xbadb6000 Type: 1 Length: 0x47000
>>>          0xbadb6000 - 0xbadde000 Type: 2 Length: 0x28000
>>>          0xbadde000 - 0xbae00000 Type: 1 Length: 0x22000
>>>          0xbae00000 - 0xbb138000 Type: 2 Length: 0x338000
>>>          0xbb138000 - 0xbd9f7000 Type: 1 Length: 0x28bf000
>>>          0xbd9f7000 - 0xbdbf7000 Type: 2 Length: 0x200000
>>>          0xbdbf7000 - 0xbdcdd000 Type: 1 Length: 0xe6000
>>>          0xbdcdd000 - 0xbdde7000 Type: 2 Length: 0x10a000
>>>          0xbdde7000 - 0xbde2a000 Type: 4 Length: 0x43000
>>>          0xbde2a000 - 0xbde2b000 Type: 3 Length: 0x1000
>>>          0xbde2b000 - 0xbde2d000 Type: 4 Length: 0x2000
>>>          0xbde2d000 - 0xbde2e000 Type: 3 Length: 0x1000
>>>          0xbde2e000 - 0xbdefe000 Type: 4 Length: 0xd0000
>>>          0xbdefe000 - 0xbdf00000 Type: 3 Length: 0x2000
>>>          0xbdf00000 - 0xbdf03000 Type: 4 Length: 0x3000
>>>          0xbdf03000 - 0xbdf1f000 Type: 3 Length: 0x1c000
>>>          0xbdf1f000 - 0xbdfac000 Type: 4 Length: 0x8d000
>>>          0xbdfac000 - 0xbe000000 Type: 1 Length: 0x54000
>>>          0xbe000000 - 0xd0000000 Type: 2 Length: 0x12000000
>>>          0xfec00000 - 0xfec01000 Type: 2 Length: 0x1000
>>>          0xfed19000 - 0xfed1a000 Type: 2 Length: 0x1000
>>>          0xfed1c000 - 0xfed20000 Type: 2 Length: 0x4000
>>>          0xfee00000 - 0xfee01000 Type: 2 Length: 0x1000
>>>          0xffa20000 - 0x100000000 Type: 2 Length: 0x5e0000
>>>          0x100000000 - 0x2040000000 Type: 1 Length: 0x1f40000000
>>> Pagealigned MMAP
>>>          0x00000000 - 0x00090000 Type: 1 Length: 0x90000
>>>          0x00090000 - 0x000a0000 Type: 2 Length: 0x10000
>>>          0x000e0000 - 0x00100000 Type: 2 Length: 0x20000
>>>          0x00100000 - 0xb897a000 Type: 1 Length: 0xb887a000
>>>          0xb897a000 - 0xb8a4e000 Type: 3 Length: 0xd4000
>>>          0xb8a4e000 - 0xba9ac000 Type: 1 Length: 0x1f5e000
>>>          0xba9ac000 - 0xba9bd000 Type: 2 Length: 0x11000
>>>          0xba9bd000 - 0xba9c9000 Type: 1 Length: 0xc000
>>>          0xba9c9000 - 0xba9de000 Type: 2 Length: 0x15000
>>>          0xba9de000 - 0xbaadc000 Type: 1 Length: 0xfe000
>>>          0xbaadc000 - 0xbaadd000 Type: 2 Length: 0x1000
>>>          0xbaadd000 - 0xbaae7000 Type: 1 Length: 0xa000
>>>          0xbaae7000 - 0xbaaea000 Type: 2 Length: 0x3000
>>>          0xbaaea000 - 0xbab3a000 Type: 1 Length: 0x50000
>>>          0xbab3a000 - 0xbab57000 Type: 2 Length: 0x1d000
>>>          0xbab57000 - 0xbab5c000 Type: 1 Length: 0x5000
>>>          0xbab5c000 - 0xbab60000 Type: 2 Length: 0x4000
>>>          0xbab60000 - 0xbab72000 Type: 1 Length: 0x12000
>>>          0xbab72000 - 0xbab82000 Type: 2 Length: 0x10000
>>>          0xbab82000 - 0xbabbd000 Type: 1 Length: 0x3b000
>>>          0xbabbd000 - 0xbabc1000 Type: 2 Length: 0x4000
>>>          0xbabc1000 - 0xbacd2000 Type: 1 Length: 0x111000
>>>          0xbacd2000 - 0xbacd9000 Type: 2 Length: 0x7000
>>>          0xbacd9000 - 0xbad44000 Type: 1 Length: 0x6b000
>>>          0xbad44000 - 0xbad49000 Type: 2 Length: 0x5000
>>>          0xbad49000 - 0xbad60000 Type: 1 Length: 0x17000
>>>          0xbad60000 - 0xbad6f000 Type: 2 Length: 0xf000
>>>          0xbad6f000 - 0xbadb6000 Type: 1 Length: 0x47000
>>>          0xbadb6000 - 0xbadde000 Type: 2 Length: 0x28000
>>>          0xbadde000 - 0xbae00000 Type: 1 Length: 0x22000
>>>          0xbae00000 - 0xbb138000 Type: 2 Length: 0x338000
>>>          0xbb138000 - 0xbd9f7000 Type: 1 Length: 0x28bf000
>>>          0xbd9f7000 - 0xbdbf7000 Type: 2 Length: 0x200000
>>>          0xbdbf7000 - 0xbdcdd000 Type: 1 Length: 0xe6000
>>>          0xbdcdd000 - 0xbdde7000 Type: 2 Length: 0x10a000
>>>          0xbdde7000 - 0xbde2a000 Type: 4 Length: 0x43000
>>>          0xbde2a000 - 0xbde2b000 Type: 3 Length: 0x1000
>>>          0xbde2b000 - 0xbde2d000 Type: 4 Length: 0x2000
>>>          0xbde2d000 - 0xbde2e000 Type: 3 Length: 0x1000
>>>          0xbde2e000 - 0xbdefe000 Type: 4 Length: 0xd0000
>>>          0xbdefe000 - 0xbdf00000 Type: 3 Length: 0x2000
>>>          0xbdf00000 - 0xbdf03000 Type: 4 Length: 0x3000
>>>          0xbdf03000 - 0xbdf1f000 Type: 3 Length: 0x1c000
>>>          0xbdf1f000 - 0xbdfac000 Type: 4 Length: 0x8d000
>>>          0xbdfac000 - 0xbe000000 Type: 1 Length: 0x54000
>>>          0xbe000000 - 0xd0000000 Type: 2 Length: 0x12000000
>>>          0xfec00000 - 0xfec01000 Type: 2 Length: 0x1000
>>>          0xfed19000 - 0xfed1a000 Type: 2 Length: 0x1000
>>>          0xfed1c000 - 0xfed20000 Type: 2 Length: 0x4000
>>>          0xfee00000 - 0xfee01000 Type: 2 Length: 0x1000
>>>          0xffa20000 - 0x100000000 Type: 2 Length: 0x5e0000
>>>          0x100000000 - 0x2040000000 Type: 1 Length: 0x1f40000000
>>> kernel 0: create_caps_to_cnode: Cannot create more caps in CNode
>>> kernel 0 PANIC! kernel assertion "err_is_ok(err)" failed at
>>> ../kernel/arch/x86_64/startup_arch.c:421
>>> kernel 0: exception 3 (error code 0x0): vec_bp: breakpoint
>>> Faulting instruction pointer (or next instruction): 0xffffff8005a7417d
>>>     => i.e. unrelocated kernel address 0x10f17d
>>> Registers:
>>>    rax: 0xffffff8005a92000  r8 : 0x0000000000000000
>>>    rbx: 0xffffff80069000a8  r9 : 0x0000000000000000
>>>    rcx: 0x00000000000003f8  r10: 0x0000000000000000
>>>    rdx: 0xffffff8005b272e0  r11: 0xffffffffffffffff
>>>    rsp: 0xffffff800634cc18  r12: 0x00000000ba9c9000
>>>    rdi: 0x0000000000000000  r13: 0xffffff8005a8c600
>>>    rsi: 0x000000000000000a  r14: 0xffffff80069004e0
>>>    rip: 0xffffff8005a7417d  r15: 0x00000000ba9bd000
>>> Top o' stack:
>>>    0      0xffffff8005a77f2b (18446743524048600875)
>>>    1      0xffffff8006351180 (18446743524057878912)
>>>    2      0xffffff8000000020 (18446743523953737760)
>>>    3      0xffffff800634cc80 (18446743524057861248)
>>>    4      0xffffff800634cc40 (18446743524057861184)
>>>    5      0x0000000000200010 (2097168)
>>>    6      0xffffff8005a8abf3 (18446743524048677875)
>>>    7      0xffffff8005a88900 (18446743524048668928)
>>>    8      0x00000000000001a5 (421)
>>>    9      0x0000000000000000 (0)
>>> kernel 0: Waiting for GDB connection...
>>> --------------8<--------------------
>>>
>>> Having glanced over this, all seems good: all regions are page-aligned,
>>> and correctly sorted after preprocessing.
>>>
>>> The failure appears to be in the code creating caps for the region that
>>> was figured out to be RAM; and specifically, space for caps seems to be
>>> running out (?). This might be plausible: the machine I ran this on has
>>> 128 GB of RAM. Is there maybe some size limitation on a data structure
>>> holding the caps? I would have thought that the top-level RAM capability
>>> should only use up (and only massive fragmentation would lead to
>>> problems on machines with lots of RAM), but my understanding of the
>>> Barrelfish capability system is, euphemistically put, limited ;-)
>>>
>>> Any ideas?
>>>
>>> Cheers,
>>> M.
>>>
>>>
>>> On 24/07/13 08:52, Manuel Stocker wrote:
>>>>
>>>> Hi Malte,
>>>>
>>>> As far as I remember we had similar symptoms when trying to boot
>>>> Barrelfish on a DELL Optiplex machine for our lab project. It has been a
>>>> while, so I might be wrong here. The issues were caused by a bad memory
>>>> map given by the DELL BIOS, so I added some fixup code in startup_arch.c
>>>> (only for x86_64).
>>>>
>>>> The problem is described in section 10.2.3 in TN-015 [1]
>>>> The fixup code is in create_phys_caps for x64 [2]
>>>> And missing in 32bit [3]
>>>>
>>>> You might want to check the debug output it should generate for x64 and
>>>> maybe adapt the code for 32bit.
>>>>
>>>> Cheers,
>>>> Manuel
>>>>
>>>> [1] http://www.barrelfish.org/TN-015-DiskDriverArchitecture.pdf
>>>> [2]
>>>>
>>>> http://hg.barrelfish.org/barrelfish/file/tip/kernel/arch/x86_64/startup_arch.c#l145
>>>> [3]
>>>>
>>>> http://hg.barrelfish.org/barrelfish/file/tip/kernel/arch/x86_32/startup_arch.c#l151
>>>>
>>>>
>>>
>>>
>>> _______________________________________________
>>> Barrelfish-users mailing list
>>> Barrelfish-users at lists.inf.ethz.ch
>>> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: create_phys_caps.c
Type: text/x-csrc
Size: 2191 bytes
Desc: not available
Url : https://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20130815/1e25d862/attachment.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: supercn_size.patch
Type: application/octet-stream
Size: 907 bytes
Desc: not available
Url : https://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20130815/1e25d862/attachment.obj 


More information about the Barrelfish-users mailing list