Messages in this thread | | | Date | Tue, 13 Nov 2007 22:58:02 +0100 | From | Eric Dumazet <> | Subject | Re: [patch 01/28] cpu alloc: The allocator |
| |
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 ? - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |