[Barrelfish-users] various boot issues
Malte Schwarzkopf
malte.schwarzkopf at cl.cam.ac.uk
Thu Aug 15 11:00:52 CEST 2013
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 --------------
Kernel starting at address 0xffffff8005a65000
kernel 0: Machine-check exceptions supported
kernel 0: Machine-check architecture supported, family 0x6
Barrelfish CPU driver starting on x86_64 apic_id 0
kernel 0: Measured 99757959 APIC timer counts in one RTC second, 210381 data points.
kernel 0: Measured 3291989 TSC counts per ms, 99 data points. Average jitter 9 TSC ticks.
kernel 0: MONITOR/MWAIT supported: min size 64 bytes, max 64 bytes. IBE EMX
spawn module: x86_64/sbin/init
kernel 0: Allocated physical memory [0x6652000, 0xca000]
kernel 0: Allocated physical memory [0x671c000, 0x163000]
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: 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
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...
More information about the Barrelfish-users
mailing list