Re: [PATCH] memcg: implement low limits

From: Greg Thelen
Date: Wed Feb 27 2013 - 03:47:18 EST

On Wed, Feb 27 2013, Roman Gushchin wrote:

> Hi, all!
> I've implemented low limits for memory cgroups. The primary goal was to add an ability
> to protect some memory from reclaiming without using mlock(). A kind of "soft mlock()".
> I think this patch will be helpful when it's necessary to protect production processes from
> memory-wasting backup processes.
> --
> Low limits for memory cgroup can be used to limit memory pressure on it.
> If memory usage of a cgroup is under it's low limit, it will not be
> affected by global reclaim. If it reaches it's low limit from above,
> the reclaiming speed will be dropped exponentially.
> Low limits don't affect soft reclaim.
> Also, it's possible that a cgroup with memory usage under low limit
> will be reclaimed slowly on very low scanning priorities.

So the new low limit is not a rigid limit. Global reclaim can reclaim
from a cgroup when its usage is below low_limit_in_bytes although such
reclaim is less aggressive than when usage is above low_limit_in_bytes.

Why doesn't memcg reclaim (i.e. !global_reclaim) also consider

Do you have demonstration of how this improves system operation?

Why is soft_limit insufficient?

> Signed-off-by: Roman Gushchin <klamm@xxxxxxxxxxxxxx>
> ---
> include/linux/memcontrol.h | 7 +++++
> include/linux/res_counter.h | 17 +++++++++++
> kernel/res_counter.c | 2 ++
> mm/memcontrol.c | 67 +++++++++++++++++++++++++++++++++++++++++++
> mm/vmscan.c | 5 ++++
> 5 files changed, 98 insertions(+)

Need to update Documentation/cgroups/memory.txt explaining the external
behavior of this new know and how it interacts with soft_limit_in_bytes.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at