On Thu, 2006-12-28 at 12:45 +0100, bert hubert wrote: > On Thu, Dec 28, 2006 at 01:23:33PM +1100, Rusty Russell wrote: > > > Ah, this is your clue, here: looks like the kernel ran BUG() or > > otherwise failed at address 0xc071b594... can you send your .config and > > I can see if I can reproduce? Your System.map should indicate what's at > > that address, to... > > c071b562 T bootmem_bootmap_pages > c071b571 t get_mapsize > c071b588 t reserve_bootmem_core > c071b5e2 t free_bootmem_core > > With some gdb trickery, this appears to be line 124 of mm/bootmem.c: Yep, my bad... As a bonus, your config also found a paravirt problem in the raid code (patch sent upstream, and attached below). Here's the two-liner patch (already rolled into the lhype.patch, so you can simply update). Thanks very much for the bug report! Rusty. diff -r 4ff048622391 arch/i386/kernel/lhype.c --- a/arch/i386/kernel/lhype.c Thu Dec 28 16:52:54 2006 +1100 +++ b/arch/i386/kernel/lhype.c Fri Dec 29 10:21:20 2006 +1100 @@ -446,14 +446,16 @@ static __attribute_used__ __init void lh acpi_disabled = 1; acpi_ht = 0; #endif - - INITRD_START = init_pg_tables_end; - INITRD_SIZE = lhype_page.initrd_size; - LOADER_TYPE = (LHYPE_LOADER_TYPE << 4) | LHYPE_LOADER_VERSION; - - /* Bootmem puts allocator bitmap immediately after boot page tables, - so tell it pagetables cover this, too. */ - init_pg_tables_end += lhype_page.initrd_size; + if (lhype_page.initrd_size) { + INITRD_START = init_pg_tables_end; + INITRD_SIZE = lhype_page.initrd_size; + LOADER_TYPE = (LHYPE_LOADER_TYPE << 4) | LHYPE_LOADER_VERSION; + + /* Bootmem puts allocator bitmap immediately after + boot page tables, so tell it pagetables cover this, too. */ + init_pg_tables_end += lhype_page.initrd_size; + } + start_kernel(); } -------------- next part -------------- A non-text attachment was scrubbed... Name: raid-paravirt.patch Type: text/x-patch Size: 684 bytes Desc: not available Url : http://lists.osdl.org/pipermail/virtualization/attachments/20061229/344280c8/attachment.bin