mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 00:11:13 +00:00
2a7bdde29b
Move MGLRU patches from pending to backport as they got merged upstream. These are direct porting from one of the dev so it's better to just move than trying to backport them again from upstream. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
81 lines
2.4 KiB
Diff
81 lines
2.4 KiB
Diff
From 3008095eb835d207dd7e5b60899aad17f32aa9f7 Mon Sep 17 00:00:00 2001
|
|
From: Yu Zhao <yuzhao@google.com>
|
|
Date: Mon, 25 Jan 2021 21:47:24 -0700
|
|
Subject: [PATCH 09/10] mm: multigenerational lru: Kconfig
|
|
|
|
Add configuration options for the multigenerational lru.
|
|
|
|
Signed-off-by: Yu Zhao <yuzhao@google.com>
|
|
Tested-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
|
|
Change-Id: Ic74ea07f8fb5f56e6904a1b80c3c286bc2911635
|
|
---
|
|
mm/Kconfig | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 59 insertions(+)
|
|
|
|
--- a/mm/Kconfig
|
|
+++ b/mm/Kconfig
|
|
@@ -899,4 +899,63 @@ config SECRETMEM
|
|
|
|
source "mm/damon/Kconfig"
|
|
|
|
+# the multigenerational lru {
|
|
+config LRU_GEN
|
|
+ bool "Multigenerational LRU"
|
|
+ depends on MMU
|
|
+ # the following options may leave not enough spare bits in page->flags
|
|
+ depends on !MAXSMP && (64BIT || !SPARSEMEM || SPARSEMEM_VMEMMAP)
|
|
+ help
|
|
+ A high performance LRU implementation to heavily overcommit workloads
|
|
+ that are not IO bound. See Documentation/vm/multigen_lru.rst for
|
|
+ details.
|
|
+
|
|
+ Warning: do not enable this option unless you plan to use it because
|
|
+ it introduces a small per-process and per-memcg and per-node memory
|
|
+ overhead.
|
|
+
|
|
+config LRU_GEN_ENABLED
|
|
+ bool "Turn on by default"
|
|
+ depends on LRU_GEN
|
|
+ help
|
|
+ The default value of /sys/kernel/mm/lru_gen/enabled is 0. This option
|
|
+ changes it to 1.
|
|
+
|
|
+ Warning: the default value is the fast path. See
|
|
+ Documentation/static-keys.txt for details.
|
|
+
|
|
+config LRU_GEN_STATS
|
|
+ bool "Full stats for debugging"
|
|
+ depends on LRU_GEN
|
|
+ help
|
|
+ This option keeps full stats for each generation, which can be read
|
|
+ from /sys/kernel/debug/lru_gen_full.
|
|
+
|
|
+ Warning: do not enable this option unless you plan to use it because
|
|
+ it introduces an additional small per-process and per-memcg and
|
|
+ per-node memory overhead.
|
|
+
|
|
+config NR_LRU_GENS
|
|
+ int "Max number of generations"
|
|
+ depends on LRU_GEN
|
|
+ range 4 31
|
|
+ default 7
|
|
+ help
|
|
+ This will use order_base_2(N+1) spare bits from page flags.
|
|
+
|
|
+ Warning: do not use numbers larger than necessary because each
|
|
+ generation introduces a small per-node and per-memcg memory overhead.
|
|
+
|
|
+config TIERS_PER_GEN
|
|
+ int "Number of tiers per generation"
|
|
+ depends on LRU_GEN
|
|
+ range 2 5
|
|
+ default 4
|
|
+ help
|
|
+ This will use N-2 spare bits from page flags.
|
|
+
|
|
+ Larger values generally offer better protection to active pages under
|
|
+ heavy buffered I/O workloads.
|
|
+# }
|
|
+
|
|
endmenu
|