From 6a3debf8cf5e5ea64b1ab2b56e0af805528d51be Mon Sep 17 00:00:00 2001
From: Alexey Makhalov <amakhalov@vmware.com>
Date: Tue, 6 Apr 2021 15:55:37 -0700
Subject: [PATCH] Control MEMCG_KMEM config
Allow to disable (compile out) CONFIG_MEMCG_KMEM.
Signed-off-by: Alexey Makhalov <amakhalov@vmware.com>
Signed-off-by: Keerthana K <keerthanak@vmware.com>
---
init/Kconfig | 9 ++++++++-
mm/memcontrol.c | 2 ++
2 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/init/Kconfig b/init/Kconfig
index 5eb91dde4018..63194057e093 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -909,9 +909,16 @@ config MEMCG
Provides control over the memory footprint of tasks in a cgroup.
config MEMCG_KMEM
- bool
+ bool "Memory Resource Controller Kernel Memory accounting"
depends on MEMCG && !SLOB
default y
+ help
+ The Kernel Memory extension for Memory Resource Controller can limit
+ the amount of memory used by kernel objects in the system. Those are
+ fundamentally different from the entities handled by the standard
+ Memory Controller, which are page-based, and can be swapped. Users of
+ the kmem extension can use it to guarantee that no group of processes
+ will ever exhaust kernel resources alone.
config BLK_CGROUP
bool "IO controller"
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 87cd5bf1b487..b7ba6d13f1ec 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -4314,6 +4314,7 @@ static struct cftype mem_cgroup_legacy_files[] = {
.seq_show = memcg_numa_stat_show,
},
#endif
+#ifdef CONFIG_MEMCG_KMEM
{
.name = "kmem.limit_in_bytes",
.private = MEMFILE_PRIVATE(_KMEM, RES_LIMIT),
@@ -4369,6 +4370,7 @@ static struct cftype mem_cgroup_legacy_files[] = {
.write = mem_cgroup_reset,
.read_u64 = mem_cgroup_read_u64,
},
+#endif
{ }, /* terminate */
};
--
2.11.0