• Tejun Heo's avatar
    percpu: implement kernel memory based chunk allocation · b0c9778b
    Tejun Heo authored
    Implement an alternate percpu chunk management based on kernel memeory
    for nommu SMP architectures.  Instead of mapping into vmalloc area,
    chunks are allocated as a contiguous kernel memory using
    alloc_pages().  As such, percpu allocator on nommu will have the
    following restrictions.
    
    * It can't fill chunks on-demand page-by-page.  It has to allocate
      each chunk fully upfront.
    
    * It can't support sparse chunk for NUMA configurations.  SMP w/o mmu
      is crazy enough.  Let's hope no one does NUMA w/o mmu.  :-P
    
    * If chunk size isn't power-of-two multiple of PAGE_SIZE, the
      unaligned amount will be wasted on each chunk.  So, archs which use
      this better align chunk size.
    
    For instructions on how to use this, read the comment on top of
    mm/percpu-km.c.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Reviewed-by: default avatarDavid Howells <dhowells@redhat.com>
    Cc: Graff Yang <graff.yang@gmail.com>
    Cc: Sonic Zhang <sonic.adi@gmail.com>
    b0c9778b
percpu.c 52.7 KB