Re: [PATCH 4/4] memcg: always enable kmemcg on the default hierarchy
From: Vladimir Davydov <hidden>
Date: 2015-08-28 16:49:36
Also in:
linux-mm
From: Vladimir Davydov <hidden>
Date: 2015-08-28 16:49:36
Also in:
linux-mm
On Fri, Aug 28, 2015 at 11:25:30AM -0400, Tejun Heo wrote:
On the default hierarchy, all memory consumption will be accounted together and controlled by the same set of limits. Always enable kmemcg on the default hierarchy.
IMO we should introduce a boot time knob for disabling it, because kmem accounting is still not perfect, besides some users might prefer to go w/o it for performance reasons.
Signed-off-by: Tejun Heo <redacted> --- mm/memcontrol.c | 7 +++++++ 1 file changed, 7 insertions(+)diff --git a/mm/memcontrol.c b/mm/memcontrol.c index c94b686..8a5dd01 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c@@ -4362,6 +4362,13 @@ mem_cgroup_css_online(struct cgroup_subsys_state *css) if (ret) return ret; + /* kmem is always accounted together on the default hierarchy */ + if (cgroup_on_dfl(css->cgroup)) { + ret = memcg_activate_kmem(memcg, PAGE_COUNTER_MAX); + if (ret) + return ret; + } +
This is a wrong place for this. The kernel will panic on an attempt to create a sub memcg, because memcg_init_kmem already enables kmem accounting in this case. I guess we should add this hunk to memcg_propagate_kmem instead. Thanks, Vladimir