1
0
linux/debian/patches/patchset-zen/sauce/0023-ZEN-INTERACTIVE-mm-swap-Disable-swap-in-readahead.patch

50 lines
1.6 KiB
Diff
Raw Normal View History

From 5a8fabcd4e7396500f2c0070f8b7ce9106eb9bfa Mon Sep 17 00:00:00 2001
From: Steven Barrett <steven@liquorix.net>
Date: Mon, 5 Sep 2022 11:35:20 -0500
Subject: ZEN: INTERACTIVE: mm/swap: Disable swap-in readahead
Per an [issue][1] on the chromium project, swap-in readahead causes more
jank than not. This might be caused by poor optimization on the
swapping code, or the fact under memory pressure, we're pulling in pages
we don't need, causing more swapping.
Either way, this is mainline/upstream to Chromium, and ChromeOS
developers care a lot about system responsiveness. Lets implement the
same change so Zen Kernel users benefit.
[1]: https://bugs.chromium.org/p/chromium/issues/detail?id=263561
---
init/Kconfig | 1 +
mm/swap.c | 5 +++++
2 files changed, 6 insertions(+)
--- a/init/Kconfig
+++ b/init/Kconfig
2024-12-05 18:46:18 +03:00
@@ -163,6 +163,7 @@ config ZEN_INTERACTIVE
Compaction proactiveness.......: 20 -> 0
Watermark boost factor.........: 1.5 -> 0
Pageblock order................: 10 -> 3
+ Swap-in readahead..............: 3 -> 0
--- EEVDF CPU Scheduler --------------------------------
--- a/mm/swap.c
+++ b/mm/swap.c
2024-11-22 20:01:53 +03:00
@@ -1112,6 +1112,10 @@ void folio_batch_remove_exceptionals(str
*/
void __init swap_setup(void)
{
+#ifdef CONFIG_ZEN_INTERACTIVE
+ /* Only swap-in pages requested, avoid readahead */
+ page_cluster = 0;
+#else
unsigned long megs = totalram_pages() >> (20 - PAGE_SHIFT);
/* Use a smaller cluster for small-memory machines */
2024-11-22 20:01:53 +03:00
@@ -1123,4 +1127,5 @@ void __init swap_setup(void)
* Right now other parts of the system means that we
* _really_ don't want to cluster much more
*/
+#endif
}