2024-10-29 05:12:06 +03:00
|
|
|
From f5b82cc382eaf3ddf5c26f60965037bde8733445 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Steven Barrett <steven@liquorix.net>
|
|
|
|
Date: Wed, 11 Aug 2021 18:47:46 -0500
|
|
|
|
Subject: ZEN: INTERACTIVE: Tune mgLRU to protect cache used in the last second
|
|
|
|
|
|
|
|
Although not identical to the le9 patches that protect a byte-amount of
|
|
|
|
cache through tunables, multigenerational LRU now supports protecting
|
|
|
|
cache accessed in the last X milliseconds.
|
|
|
|
|
|
|
|
In #218, Yu recommends starting with 1000ms and tuning as needed. This
|
|
|
|
looks like a safe default and turning on this feature should help users
|
|
|
|
that don't know they need it.
|
|
|
|
---
|
|
|
|
init/Kconfig | 1 +
|
|
|
|
mm/vmscan.c | 4 ++++
|
|
|
|
2 files changed, 5 insertions(+)
|
|
|
|
|
|
|
|
--- a/init/Kconfig
|
|
|
|
+++ b/init/Kconfig
|
|
|
|
@@ -148,6 +148,7 @@ config ZEN_INTERACTIVE
|
|
|
|
--- Virtual Memory Subsystem ---------------------------
|
|
|
|
|
|
|
|
Background-reclaim hugepages...: no -> yes
|
|
|
|
+ MG-LRU minimum cache TTL.......: 0 -> 1000 ms
|
|
|
|
|
|
|
|
config BROKEN
|
|
|
|
bool
|
|
|
|
--- a/mm/vmscan.c
|
|
|
|
+++ b/mm/vmscan.c
|
2024-11-08 22:50:42 +03:00
|
|
|
@@ -3974,7 +3974,11 @@ static bool lruvec_is_reclaimable(struct
|
2024-10-29 05:12:06 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
/* to protect the working set of the last N jiffies */
|
|
|
|
+#ifdef CONFIG_ZEN_INTERACTIVE
|
|
|
|
+static unsigned long lru_gen_min_ttl __read_mostly = HZ;
|
|
|
|
+#else
|
|
|
|
static unsigned long lru_gen_min_ttl __read_mostly;
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
static void lru_gen_age_node(struct pglist_data *pgdat, struct scan_control *sc)
|
|
|
|
{
|