percpu: implement nommu support
From: Tejun Heo
Date: Thu Apr 08 2010 - 00:13:25 EST
Hello,
This patchset implements nommu support in percpu allocator. Chunk
alloc/free/(de)populate codes are separated into a separate file so
that different flavor can be included depending on configuration. The
default vmalloc area based version now lives in percpu-vm.c and the
new kernel memory based one lives in percpu-km.c and can be selected
by CONFIG_NEED_PER_CPU_KM.
percpu-km allocates each chunk as contigus area in kernel memory using
alloc_pages(). For details on usage and limitations, please read the
patch description and comment in mm/percpu-km.c.
This patchset contains the following five patches.
0001-percpu-factor-out-pcpu_addr_in_first-reserved_chunk-.patch
0002-percpu-reorganize-chunk-creation-and-destruction.patch
0003-percpu-misc-preparations-for-nommu-support.patch
0004-percpu-move-vmalloc-based-chunk-management-into-perc.patch
0005-percpu-implement-kernel-memory-based-chunk-allocatio.patch
0001-0003 prepare for future changes - factor things out, relocate,
clean up.
0004 separates out the default vmalloc based chunk management into
percpu-vm.c.
0005 implements percpu-km.c.
The following git branch contains these patches.
git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git nommu
I've tested percpu-km on x86_64 w/ configuration and percpu init code
massged. Sonic Zhang tested it on blackfin and reports it works fine
there too (Sonic, please base further tests on these new patches).
I'll wait several days for review and further test results and then
push these patches to linux-next.
This patchset contains the following changes.
mm/percpu-km.c | 104 ++++++++++
mm/percpu-vm.c | 451 ++++++++++++++++++++++++++++++++++++++++++++
mm/percpu.c | 584 ++++++++++-----------------------------------------------
3 files changed, 664 insertions(+), 475 deletions(-)
Thanks.
--
tejun
--
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/