Messages in this thread | | | From | Tejun Heo <> | Subject | percpu: implement nommu support | Date | Thu, 8 Apr 2010 13:11:00 +0900 |
| |
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
| |