]> bbs.cooldavid.org Git - net-next-2.6.git/commit - mm/percpu.c
percpu: make 4k first chunk allocator map memory
authorTejun Heo <tj@kernel.org>
Fri, 3 Jul 2009 23:10:59 +0000 (08:10 +0900)
committerTejun Heo <tj@kernel.org>
Fri, 3 Jul 2009 23:10:59 +0000 (08:10 +0900)
commit8f05a6a65d944f2fed4eb384fb58aa8c8e5a9bab
tree433e2bc9f937778376a9b38e3d9816862292bb51
parentd4b95f80399471e4bce5e992700ff7f06ef91f6a
percpu: make 4k first chunk allocator map memory

At first, percpu first chunk was always setup page-by-page by the
generic code.  To add other allocators, different parts of the generic
initialization was made optional.  Now we have three allocators -
embed, remap and 4k.  embed and remap fully handle allocation and
mapping of the first chunk while 4k still depends on generic code for
those.  This makes the generic alloc/map paths specifci to 4k and
makes the code unnecessary complicated with optional generic
behaviors.

This patch makes the 4k allocator to allocate and map memory directly
instead of depending on the generic code.  The only outside visible
change is that now dynamic area in the first chunk is allocated
up-front instead of on-demand.  This doesn't make any meaningful
difference as the area is minimal (usually less than a page, just
enough to fill the alignment) on 4k allocator.  Plus, dynamic area in
the first chunk usually gets fully used anyway.

This will allow simplification of pcpu_setpu_first_chunk() and removal
of chunk->page array.

[ Impact: no outside visible change other than up-front allocation of dyn area ]

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Ingo Molnar <mingo@elte.hu>
mm/percpu.c