• T
    percpu: make 4k first chunk allocator map memory · 8f05a6a6
    Tejun Heo 提交于
    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: NTejun Heo <tj@kernel.org>
    Cc: Ingo Molnar <mingo@elte.hu>
    8f05a6a6
percpu.c 40.9 KB