Re: [patch] mm: memcontrol: remove hierarchy restrictions for swappiness and oom_control

From: Johannes Weiner
Date: Thu Apr 17 2014 - 08:57:52 EST


On Wed, Apr 16, 2014 at 02:34:25PM -0700, Andrew Morton wrote:
> On Wed, 16 Apr 2014 17:13:18 -0400 Johannes Weiner <hannes@xxxxxxxxxxx> wrote:
>
> > Per-memcg swappiness and oom killing can currently not be tweaked on a
> > memcg that is part of a hierarchy, but not the root of that hierarchy.
> > Users have complained that they can't configure this when they turned
> > on hierarchy mode. In fact, with hierarchy mode becoming the default,
> > this restriction disables the tunables entirely.
> >
> > But there is no good reason for this restriction. The settings for
> > swappiness and OOM killing are taken from whatever memcg whose limit
> > triggered reclaim and OOM invocation, regardless of its position in
> > the hierarchy tree.
> >
> > Allow setting swappiness on any group. The knob on the root memcg
> > already reads the global VM swappiness, make it writable as well.
> >
> > Allow disabling the OOM killer on any non-root memcg.
>
> Documentation/cgroups/memory.txt needs updates?

Yes, that makes sense, thanks. How about this?

---
Subject: [patch] mm: memcontrol: remove hierarchy restrictions for swappiness and oom_control fix

Update Documentation/cgroups/memory.txt

Signed-off-by: Johannes Weiner <hannes@xxxxxxxxxxx>
---

diff --git a/Documentation/cgroups/memory.txt b/Documentation/cgroups/memory.txt
index 2622115276aa..1829c65f8371 100644
--- a/Documentation/cgroups/memory.txt
+++ b/Documentation/cgroups/memory.txt
@@ -535,17 +535,15 @@ Note:

5.3 swappiness

-Similar to /proc/sys/vm/swappiness, but affecting a hierarchy of groups only.
+Similar to /proc/sys/vm/swappiness, but only affecting reclaim that is
+triggered by this cgroup's hard limit. The tunable in the root cgroup
+corresponds to the global swappiness setting.
+
Please note that unlike the global swappiness, memcg knob set to 0
really prevents from any swapping even if there is a swap storage
available. This might lead to memcg OOM killer if there are no file
pages to reclaim.

-Following cgroups' swappiness can't be changed.
-- root cgroup (uses /proc/sys/vm/swappiness).
-- a cgroup which uses hierarchy and it has other cgroup(s) below it.
-- a cgroup which uses hierarchy and not the root of hierarchy.
-
5.4 failcnt

A memory cgroup provides memory.failcnt and memory.memsw.failcnt files.
@@ -754,7 +752,6 @@ You can disable the OOM-killer by writing "1" to memory.oom_control file, as:

#echo 1 > memory.oom_control

-This operation is only allowed to the top cgroup of a sub-hierarchy.
If OOM-killer is disabled, tasks under cgroup will hang/sleep
in memory cgroup's OOM-waitqueue when they request accountable memory.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/