• Tejun Heo's avatar
    percpu: make embedding first chunk allocator check vmalloc space size · 6ea529a2
    Tejun Heo authored
    Embedding first chunk allocator maintains the distances between units
    in the vmalloc area and thus needs vmalloc space to be larger than the
    maximum distances between units; otherwise, it wouldn't be able to
    create any dynamic chunks.  This patch makes the embedding first chunk
    allocator check vmalloc space size and if the maximum distance between
    units is larger than 75% of it, print warning and, if page mapping
    allocator is available, fail initialization so that the system falls
    back onto it.
    
    This should work around percpu allocation failure problems on certain
    sparc64 configurations where distances between NUMA nodes are larger
    than the vmalloc area and makes percpu allocator more robust for
    future configurations.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    6ea529a2
percpu.c 59.7 KB