• Andi Kleen's avatar
    [PATCH] Handle all and empty zones when setting up custom zonelists for mbind · dd942ae3
    Andi Kleen authored
    The memory allocator doesn't like empty zones (which have an
    uninitialized freelist), so a x86-64 system with a node fully
    in GFP_DMA32 only would crash on mbind.
    
    Fix that up by putting all possible zones as fallback into the zonelist
    and skipping the empty ones.
    
    In fact the code always enough allocated space for all zones,
    but only used it for the highest. This change just uses all the
    memory that was allocated before.
    
    This should work fine for now, but whoever implements node hot removal
    needs to fix this somewhere else too (or make sure zone datastructures
    by itself never go away, only their memory)
    Signed-off-by: default avatarAndi Kleen <ak@suse.de>
    Acked-by: default avatarChristoph Lameter <clameter@sgi.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    dd942ae3
Name
Last commit
Last update
..
Kconfig Loading commit data...
Makefile Loading commit data...
bootmem.c Loading commit data...
fadvise.c Loading commit data...
filemap.c Loading commit data...
filemap.h Loading commit data...
filemap_xip.c Loading commit data...
fremap.c Loading commit data...
highmem.c Loading commit data...
hugetlb.c Loading commit data...
internal.h Loading commit data...
madvise.c Loading commit data...
memory.c Loading commit data...
memory_hotplug.c Loading commit data...
mempolicy.c Loading commit data...
mempool.c Loading commit data...
mincore.c Loading commit data...
mlock.c Loading commit data...
mmap.c Loading commit data...
mprotect.c Loading commit data...
mremap.c Loading commit data...
msync.c Loading commit data...
nommu.c Loading commit data...
oom_kill.c Loading commit data...
page-writeback.c Loading commit data...
page_alloc.c Loading commit data...
page_io.c Loading commit data...
pdflush.c Loading commit data...
prio_tree.c Loading commit data...
readahead.c Loading commit data...
rmap.c Loading commit data...
shmem.c Loading commit data...
slab.c Loading commit data...
slob.c Loading commit data...
sparse.c Loading commit data...
swap.c Loading commit data...
swap_state.c Loading commit data...
swapfile.c Loading commit data...
thrash.c Loading commit data...
tiny-shmem.c Loading commit data...
truncate.c Loading commit data...
util.c Loading commit data...
vmalloc.c Loading commit data...
vmscan.c Loading commit data...