Re: [PATCH 16/35] x86: make 64 bit use early_res instead of bootmembefore slab

From: Yinghai Lu
Date: Wed Feb 24 2010 - 18:34:38 EST


On 02/24/2010 03:29 PM, Yinghai Lu wrote:
> On 02/24/2010 02:59 PM, Peter Zijlstra wrote:
>> On Tue, 2010-02-16 at 17:16 -0800, Yinghai Lu wrote:
>>
>>> Subject: [PATCH -v3 16/35] x86: make 64 bit use early_res instead of bootmem before slab
>>>
>>> finally we can use early_res to replace bootmem for x86_64 now.
>>>
>>> still can use CONFIG_NO_BOOTMEM to enable it or not
>>>
>>> -v2: fix 32bit compiling about MAX_DMA32_PFN
>>> -v3: fix PPC compiling
>>> | mm/page_alloc.c:3468: error: implicit declaration of function 'find_early_area'
>>> | mm/page_alloc.c:3483: error: implicit declaration of function 'reserve_early_without_check'
>>>
>>> | actually the function is only needed for no_bootmem
>>>
>>>
>>> Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx>
>>
>> This makes my machine unhappy and panic.. machine works fine with
>> CONFIG_NO_BOOTMEM=n
>>
>> Kernel panic - not syncing: free_early on not reserved area: 2f80000-2f9ffff!
>> Pid: 0, comm: swapper Not tainted 2.6.33-rc8-tip-00918-gb34d361 #159
>> Call Trace:
>> [<ffffffff815d12e2>] panic+0x84/0x147
>> [<ffffffff81cceecb>] free_early+0x64/0x6d
>> [<ffffffff81cd2231>] free_bootmem+0xc/0xe
>> [<ffffffff81cc1cd6>] pcpu_fc_free+0x1d/0x1f
>> [<ffffffff81cd6056>] pcpu_embed_first_chunk+0x13a/0x27f
>> [<ffffffff81cc1cd8>] ? pcpu_fc_alloc+0x0/0xac
>> [<ffffffff81cc1cb9>] ? pcpu_fc_free+0x0/0x1f
>> [<ffffffff81cc1af7>] setup_per_cpu_areas+0x82/0x239
>> [<ffffffff81cb5b3c>] start_kernel+0x1b8/0x43b
>> [<ffffffff81cb52bc>] x86_64_start_reservations+0xa7/0xab
>> [<ffffffff81cb53b8>] x86_64_start_kernel+0xf8/0x107
>>
>
> we can not handle partial free, and current only user for that is pcpu_setup...
>

Tejun,

any plan to pcpu_setup to use slab allocation instead of bootmem?

that code is only one user that do partial bootmem free.

Thanks

Yinghai

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/