kernel_samsung_a53x/mm
Sultan Alsawaf 867fdfeb8a mm: Disable watermark boosting by default
What watermark boosting does is preemptively fire up kswapd to free
memory when there hasn't been an allocation failure. It does this by
increasing kswapd's high watermark goal and then firing up kswapd. The
reason why this causes freezes is because, with the increased high
watermark goal, kswapd will steal memory from processes that need it in
order to make forward progress. These processes will, in turn, try to
allocate memory again, which will cause kswapd to steal necessary pages
from those processes again, in a positive feedback loop known as page
thrashing. When page thrashing occurs, your system is essentially
livelocked until the necessary forward progress can be made to stop
processes from trying to continuously allocate memory and trigger
kswapd to steal it back.

This problem already occurs with kswapd *without* watermark boosting,
but it's usually only encountered on machines with a small amount of
memory and/or a slow CPU. Watermark boosting just makes the existing
problem worse enough to notice on higher spec'd machines.

Disable watermark boosting by default since it's a total dumpster fire.
I can't imagine why anyone would want to explicitly enable it, but the
option is there in case someone does.

Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com>
Signed-off-by: Juhyung Park <qkrwngud825@gmail.com>
Signed-off-by: celtare21 <celtare21@gmail.com>
2024-11-19 17:59:15 +01:00
..
damon Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kasan Revert "kasan: print the original fault addr when access invalid shadow" 2024-11-18 11:06:01 +01:00
kfence Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sec_mm Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
backing-dev.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
balloon_compaction.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cleancache.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cma.c mm/cma: use nth_page() in place of direct struct page manipulation 2024-11-18 11:43:25 +01:00
cma.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cma_debug.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cma_sysfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
compaction.c mm: Disable proactive compaction by default 2024-11-19 17:53:38 +01:00
debug.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
debug_page_ref.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
debug_vm_pgtable.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dmapool.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
early_ioremap.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fadvise.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
failslab.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
filemap.c mm/lru: revise the comments of lru_lock 2024-11-19 17:58:24 +01:00
frame_vector.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
frontswap.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gup.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gup_benchmark.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
highmem.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hmm.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hpa.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
huge_memory.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hugetlb.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hugetlb_cgroup.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hwpoison-inject.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
init-mm.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
internal.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
interval_tree.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
io_record.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ioremap.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig zsmalloc: backport from 5994eabf3bbb 2024-11-19 17:44:14 +01:00
Kconfig.debug Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
khugepaged.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kmemleak.c mm: kmemleak: Don't die when memory allocation fails 2024-11-19 17:44:35 +01:00
ksm.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kzerod.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
list_lru.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
maccess.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
madvise.c Revert "fs: add file and path permissions helpers" 2024-11-19 13:30:21 +01:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mapping_dirty_helpers.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
memblock.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
memcontrol.c Revert "fs: add file and path permissions helpers" 2024-11-19 13:30:21 +01:00
memfd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
memory-failure.c mm/memory-failure: fix an incorrect use of tail pages 2024-11-19 09:22:41 +01:00
memory.c x86/mm/pat: fix VM_PAT handling in COW mappings 2024-11-19 09:23:15 +01:00
memory_hotplug.c mm/memory_hotplug: use pfn math in place of direct struct page manipulation 2024-11-18 11:43:25 +01:00
mempolicy.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mempool.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
memremap.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
memtest.c memtest: use {READ,WRITE}_ONCE in memory scanning 2024-11-19 09:22:36 +01:00
migrate.c mm/migrate: set swap entry values of THP tail pages properly. 2024-11-19 09:22:41 +01:00
mincore.c Revert "fs: add file and path permissions helpers" 2024-11-19 13:30:21 +01:00
mlock.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mm_init.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mmap.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mmu_gather.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mmu_notifier.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mmzone.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mprotect.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mremap.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
msync.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nommu.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
oom_kill.c mm: oom_kill: Reduce some verbose logging 2024-11-19 17:44:31 +01:00
page-writeback.c kernel: sysctl: add init protection to common mm-related nodes 2024-11-19 17:39:17 +01:00
page_alloc.c mm: Disable watermark boosting by default 2024-11-19 17:59:15 +01:00
page_counter.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
page_ext.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
page_idle.c mm: page_idle_get_page() does not need lru_lock 2024-11-19 17:58:44 +01:00
page_io.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
page_isolation.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
page_owner.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
page_pinner.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
page_poison.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
page_reporting.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
page_reporting.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
page_vma_mapped.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pagewalk.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
percpu-internal.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
percpu-km.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
percpu-stats.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
percpu-vm.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
percpu.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pgalloc-track.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pgtable-generic.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
process_vm_access.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ptdump.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
readahead.c vfs: fix readahead(2) on block devices 2024-11-18 11:42:46 +01:00
rmap.c mm/rmap: stop store reordering issue on page->mapping 2024-11-19 17:59:04 +01:00
rodata_test.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
shmem.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
shuffle.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
shuffle.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
slab.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
slab.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
slab_common.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
slob.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
slub.c slub: Optimized SLUB Memory Allocator 2024-11-19 17:44:40 +01:00
sparse-vmemmap.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sparse.c mm/sparsemem: fix race in accessing memory_section->usage 2024-11-18 12:13:06 +01:00
swap.c mm/lru: move lock into lru_note_cost 2024-11-19 17:58:50 +01:00
swap_cgroup.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
swap_slots.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
swap_state.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
swapfile.c mm: swap: fix race between free_swap_and_cache() and swapoff() 2024-11-19 09:22:33 +01:00
truncate.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
usercopy.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
userfaultfd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
util.c mm: vmalloc: introduce array allocation functions 2024-11-18 12:12:59 +01:00
vmacache.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vmalloc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vmpressure.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vmscan.c mm/vmscan: remove unnecessary lruvec adding 2024-11-19 17:58:57 +01:00
vmstat.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
workingset.c mm/lru: move lock into lru_note_cost 2024-11-19 17:58:50 +01:00
z3fold.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
zbud.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
zpool.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
zsmalloc.c zsmalloc: backport from 5994eabf3bbb 2024-11-19 17:44:14 +01:00
zswap.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00