• Helge Deller's avatar
    parisc: Switch from DISCONTIGMEM to SPARSEMEM · dbdf0760
    Helge Deller authored
    The commit 1c30844d ("mm: reclaim small amounts of memory when an
    external fragmentation event occurs") breaks memory management on a
    parisc c8000 workstation with this memory layout:
    
    	0) Start 0x0000000000000000 End 0x000000003fffffff Size   1024 MB
    	1) Start 0x0000000100000000 End 0x00000001bfdfffff Size   3070 MB
    	2) Start 0x0000004040000000 End 0x00000040ffffffff Size   3072 MB
    
    With the patch 1c30844d, the kernel will incorrectly reclaim the
    first zone when it fills up, ignoring the fact that there are two
    completely free zones. Basiscally, it limits cache size to 1GiB.
    
    The parisc kernel is currently using the DISCONTIGMEM implementation,
    but isn't NUMA. Avoid this issue or strange work-arounds by switching to
    the more commonly used SPARSEMEM implementation.
    Reported-by: default avatarMikulas Patocka <mpatocka@redhat.com>
    Fixes: 1c30844d ("mm: reclaim small amounts of memory when an external fragmentation event occurs")
    Signed-off-by: default avatarHelge Deller <deller@gmx.de>
    dbdf0760
parisc_ksyms.c 3.99 KB