Re: mmotm boot panic bootmem-avoid-dma32-zone-by-default.patch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Mar 4, 2010 at 7:21 PM, Johannes Weiner <hannes@xxxxxxxxxxx> wrote:
> On Thu, Mar 04, 2010 at 01:21:41PM -0800, Greg Thelen wrote:
>> On several systems I am seeing a boot panic if I use mmotm
>> (stamp-2010-03-02-18-38).  If I remove
>> bootmem-avoid-dma32-zone-by-default.patch then no panic is seen.  I
>> find that:
>> * 2.6.33 boots fine.
>> * 2.6.33 + mmotm w/o bootmem-avoid-dma32-zone-by-default.patch: boots fine.
>> * 2.6.33 + mmotm (including
>> bootmem-avoid-dma32-zone-by-default.patch): panics.
>> Here's the panic seen with earlyprintk using 2.6.33 + mmotm:
>> [    0.000000]  modified: 0000000000000000 - 0000000000010000 (reserved)
>> [    0.000000]  modified: 0000000000010000 - 000000000009fc00 (usable)
>> [    0.000000]  modified: 000000000009fc00 - 00000000000a0000 (reserved)
>> [    0.000000]  modified: 00000000000e8000 - 0000000000100000 (reserved)
>> [    0.000000]  modified: 0000000000100000 - 000000000fff0000 (usable)
>> [    0.000000]  modified: 000000000fff0000 - 0000000010000000 (ACPI data)
>> [    0.000000]  modified: 00000000fffbd000 - 0000000100000000 (reserved)
>> [    0.000000] init_memory_mapping: 0000000000000000-000000000fff0000
> 256MB of memory, right?

yes, I am testing in a 256MB VM.

>> The kernel was built with 'make mrproper && make defconfig && make
>> ARCH=x86_64 CONFIG=smp -j 6'.  This panic is seen on every attempt, so
>> I can provide more diagnostics.
>
> Okay, if you did defconfig and just hit enter to all questions, you
> should have SPARSEMEM_EXTREME and NO_BOOTMEM enabled.

Correct.

> This means that the 'mem_section' is an array of pointers and the following
> happens in memory_present():
>
>        for_one_pfn_in_each_section() {
>                sparse_index_init(); /* no return value check */
>                ms = __nr_to_section();
>                if (!ms->section_mem_map) /* bang */
>                        ...;
>        }
>
> where sparse_index_init(), in the SPARSEMEM_EXTREME case, will allocate
> the mem_section descriptor with bootmem.  If this would fail, the box
> would panic immediately earlier, but NO_BOOTMEM does not seem to get it
> right.
>
> Greg, could you retry _with_ my bootmem patch applied, but with setting
> CONFIG_NO_BOOTMEM=n up front?

Note: mmotm has been recently updated to stamp-2010-03-04-18-05.  I
re-tested with 'make defconfig' to confirm the panic with this later
mmotm.

Then, as you suggested, I set CONFIG_NO_BOOTMEM=n.  The system booted
fine (no panic).

--
Greg

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]