[PATCH 0/2] Mempressure cgroup

From: Anton Vorontsov
Date: Fri Jan 04 2013 - 03:39:00 EST

Hi all,

Here is another round of the mempressure cgroup. This time I dared to
remove the RFC tag. :)

In this revision:

- Addressed most of Kirill Shutemov's comments. I didn't bother
implementing per-level lists, though. It would needlessly complicate the
logic, and the gain would be only visible with lots of watchers (which
we don't have for our use-cases). But it is always an option to add the

- I've split the pach into two: 'shrinker' and 'levels' parts. While the
full-fledged userland shrinker is an interesting idea, we don't have any
users ready for it, so I won't advocate for it too much.

And since at least Kirill has some concerns about it, I don't want the
shrinker to block the pressure levels.

So, these are now separate. At some point, I'd like to both of them
merged, but if anything, let's discuss them separately;

- Rebased onto v3.8-rc2.

RFC v2 (http://lkml.org/lkml/2012/12/10/128):

- Added documentation, describes APIs and the purpose;
- Implemented shrinker interface, this is based on Andrew's idea and
supersedes my "balance" level idea;
- The shrinker interface comes with a stress-test utility, that is what
Andrew was also asking for. A simple app that we can run and see if the
thing works as expected;
- Added reclaimer's target_mem_cgroup handling;
- As promised, added support for multiple listeners, and fixed some other
comments on the previous RFC.

RFC v1 (http://lkml.org/lkml/2012/11/28/109)

Documentation/cgroups/mempressure.txt | 97 +++++
Documentation/cgroups/mempressure_test.c | 213 ++++++++++
include/linux/cgroup_subsys.h | 6 +
include/linux/vmstat.h | 11 +
init/Kconfig | 13 +
mm/Makefile | 1 +
mm/mempressure.c | 487 +++++++++++++++++++++++
mm/vmscan.c | 4 +
8 files changed, 832 insertions(+)
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/