Re: [patch 01/28] cpu alloc: The allocator

Eric Dumazet
2007-11-13T21:59:18Z

Christoph Lameter a écrit :
> On Tue, 13 Nov 2007, David Miller wrote:
>
>> One thing you could do is simply use a vmalloc allocation in the
>> non-virtualized case.
>
> Yuck. Meaning to add more crappy code. The bss limitations to 8M is a bit
> strange though. Do other platforms have the same issues?

Maybe not so crappy, because even for i386 code, you might use not a strict
vmalloc() implementation but at least reserving percpu space inside the
vmalloc range. (ie not use a dedicated area as your current patchset does)

This is because NR_CPUS is defaulted to 32 on i386 (with a limit of 256), so
reserving 256*256KB = 64 MB of virtual space might be too much. (this is half
the typical vmalloc area)

The idea would be :

- Reserving an area of NR_CPUS*256KB inside vmalloc() space (but of course not
allocating pages)

- Then for each non possible cpu, 'release' its 256KB area and give it back to
vmalloc free areas pool.

Once you add in mm/vmalloc.c all needed helpers, no need to use BSS Megablob
anymore ?