50 lines
1.6 KiB
Diff
50 lines
1.6 KiB
Diff
|
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
|
||
|
@@ -154,6 +154,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
|
||
|
@@ -1126,6 +1126,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 */
|
||
|
@@ -1137,4 +1141,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
|
||
|
}
|