| From a780e9ae2249ba8c5c9f6f91b5b98486cee12c15 Mon Sep 17 00:00:00 2001 |
| From: Yu Zhao <yuzhao@google.com> |
| Date: Mon, 25 Jan 2021 21:47:24 -0700 |
| Subject: [PATCH] BACKPORT: FROMLIST: 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> |
| (am from https://lore.kernel.org/patchwork/patch/1432188/) |
| |
| BUG=b:123039911 |
| TEST=Built |
| |
| Change-Id: Ic74ea07f8fb5f56e6904a1b80c3c286bc2911635 |
| Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2987927 |
| Tested-by: Yu Zhao <yuzhao@chromium.org> |
| Reviewed-by: Sonny Rao <sonnyrao@chromium.org> |
| Reviewed-by: Yu Zhao <yuzhao@chromium.org> |
| Commit-Queue: Yu Zhao <yuzhao@chromium.org> |
| --- |
| mm/Kconfig | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| 1 file changed, 57 insertions(+) |
| |
| diff --git a/mm/Kconfig b/mm/Kconfig |
| --- a/mm/Kconfig |
| +++ b/mm/Kconfig |
| @@ -922,6 +922,63 @@ config LOW_MEM_NOTIFY |
| the presence of large swap space, the system is likely to become |
| unusable before the OOM killer is triggered. |
| |
| +# the multigenerational lru { |
| +config LRU_GEN |
| + bool "Multigenerational LRU" |
| + depends on MMU && !MAXSMP |
| + 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. |
| +# } |
| + |
| source "mm/damon/Kconfig" |
| |
| endmenu |
| -- |
| 2.33.0.464.g1972c5931b-goog |
| |