aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc/include/asm/page.h
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2019-04-09 21:52:35 +0200
committerHelge Deller <deller@gmx.de>2019-05-03 23:47:40 +0200
commitdbdf0760990583649bfaca75fd98f76afd5f3905 (patch)
tree7caa3387834d951c5c55aad14b1dfd78cd262257 /arch/parisc/include/asm/page.h
parentparisc: enable wide mode early (diff)
downloadlinux-dev-dbdf0760990583649bfaca75fd98f76afd5f3905.tar.xz
linux-dev-dbdf0760990583649bfaca75fd98f76afd5f3905.zip
parisc: Switch from DISCONTIGMEM to SPARSEMEM
The commit 1c30844d2dfe ("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 1c30844d2dfe, 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: Mikulas Patocka <mpatocka@redhat.com> Fixes: 1c30844d2dfe ("mm: reclaim small amounts of memory when an external fragmentation event occurs") Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'arch/parisc/include/asm/page.h')
-rw-r--r--arch/parisc/include/asm/page.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/parisc/include/asm/page.h b/arch/parisc/include/asm/page.h
index b77f49ce6220..93caf17ac5e2 100644
--- a/arch/parisc/include/asm/page.h
+++ b/arch/parisc/include/asm/page.h
@@ -147,9 +147,9 @@ extern int npmem_ranges;
#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
-#ifndef CONFIG_DISCONTIGMEM
+#ifndef CONFIG_SPARSEMEM
#define pfn_valid(pfn) ((pfn) < max_mapnr)
-#endif /* CONFIG_DISCONTIGMEM */
+#endif
#ifdef CONFIG_HUGETLB_PAGE
#define HPAGE_SHIFT PMD_SHIFT /* fixed for transparent huge pages */