linux/arch/parisc/kernel
Helge Deller dbdf076099 parisc: Switch from DISCONTIGMEM to SPARSEMEM
The commit 1c30844d2d ("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 1c30844d2d, 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: 1c30844d2d ("mm: reclaim small amounts of memory when an external fragmentation event occurs")
Signed-off-by: Helge Deller <deller@gmx.de>
2019-05-03 23:47:40 +02:00
..
syscalls arch: add pidfd and io_uring syscalls everywhere 2019-04-15 16:31:17 +02:00
.gitignore
alternative.c parisc: Split out alternative live patching code 2018-12-10 07:47:50 +01:00
asm-offsets.c parisc: Drop per_cpu uaccess related exception_data struct 2017-05-10 17:46:13 +02:00
audit.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cache.c parisc: Optimze cache flush algorithms 2018-10-20 21:10:26 +02:00
compat_audit.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drivers.c parisc: Convert printk(KERN_LEVEL) to pr_lvl() 2018-06-28 17:14:44 +02:00
entry.S parisc: Use LINUX_GATEWAY_SPACE constant in entry.S 2018-10-26 08:20:58 +02:00
firmware.c parisc: Show machine product number during boot 2019-02-21 20:37:13 +01:00
ftrace.c parisc: function_graph: Simplify with function_graph_enter() 2018-11-27 20:30:52 -05:00
hardware.c parisc: Move various functions and strings to init section 2018-03-27 18:52:21 +02:00
head.S parisc: enable wide mode early 2019-05-03 23:47:40 +02:00
hpmc.S parisc: Fix exported address of os_hpmc handler 2018-10-17 08:18:01 +02:00
inventory.c parisc: Retrieve and display the PDC PAT capabilities 2018-10-20 21:10:37 +02:00
irq.c parisc: Improve initial IRQ to CPU assignment 2019-02-21 20:37:11 +01:00
kgdb.c parisc: add KGDB support 2019-05-03 23:47:38 +02:00
kprobes.c parisc: Implement kretprobes 2019-05-03 23:47:39 +02:00
Makefile parisc: Implement kprobes 2019-05-03 23:47:39 +02:00
module.c parisc: Split out alternative live patching code 2018-12-10 07:47:50 +01:00
pa7300lc.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pacache.S parisc: Optimze cache flush algorithms 2018-10-20 21:10:26 +02:00
parisc_ksyms.c parisc: Switch from DISCONTIGMEM to SPARSEMEM 2019-05-03 23:47:40 +02:00
patch.c parisc: remove unused flags parameter in __patch_text() 2019-05-03 23:47:39 +02:00
pci-dma.c dma-mapping: zero memory returned from dma_alloc_* 2018-12-20 08:13:52 +01:00
pci.c parisc: Fix section mismatches 2018-05-02 21:47:35 +02:00
pdc_chassis.c proc: introduce proc_create_single{,_data} 2018-05-16 07:23:35 +02:00
pdc_cons.c treewide: Switch DEFINE_TIMER callbacks to struct timer_list * 2017-11-21 15:57:05 -08:00
pdt.c mm/memory_failure: Remove unused trapno from memory_failure 2018-01-23 12:17:42 -06:00
perf_asm.S
perf_images.h
perf.c parisc: Static initialization of spinlocks in perf and unwind code 2017-08-22 16:34:33 +02:00
process.c parisc: Export running_on_qemu symbol for modules 2019-05-03 23:47:38 +02:00
processor.c parisc: Show n/a if product number not available 2019-05-03 23:47:39 +02:00
ptrace.c parisc: add functions required by KPROBE_EVENTS 2019-05-03 23:47:39 +02:00
real2.S parisc: Fix and improve kernel stack unwinding 2018-08-13 09:54:17 +02:00
setup.c parisc: Detect QEMU earlier in boot process 2019-04-06 19:07:55 +02:00
signal32.c signal: Unify and correct copy_siginfo_to_user32 2018-01-15 19:56:20 -06:00
signal32.h signal: Unify and correct copy_siginfo_to_user32 2018-01-15 19:56:20 -06:00
signal.c parisc: Add alternative coding infrastructure 2018-10-17 17:22:26 +02:00
smp.c parisc: Count IPI function call interrupts 2019-02-21 20:37:11 +01:00
stacktrace.c parisc: Consolidate unwind initialization calls 2018-08-17 17:00:08 +02:00
sys_parisc32.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sys_parisc.c parisc: Consider stack randomization for mmap base only when necessary 2019-05-03 23:47:38 +02:00
syscall.S parisc: generate uapi header and system call table files 2018-12-10 08:26:04 +01:00
time.c parisc: time: Convert read_persistent_clock() to read_persistent_clock64() 2018-04-20 20:18:21 +02:00
topology.c parisc: Add CPU topology support 2017-11-17 15:27:22 +01:00
traps.c parisc: Implement kprobes 2019-05-03 23:47:39 +02:00
unaligned.c signal/parisc: Use force_sig_fault where appropriate 2018-04-25 10:44:06 -05:00
unwind.c parisc: Fix uninitialized variable usage in unwind.c 2018-10-16 11:37:29 +02:00
vmlinux.lds.S parisc: Add alternative coding infrastructure 2018-10-17 17:22:26 +02:00