[rfc patch 0/6] mm: memcg naturalization

From: Johannes Weiner
Date: Thu May 12 2011 - 10:55:57 EST


Hi!

Here is a patch series that is a result of the memcg discussions on
LSF (memcg-aware global reclaim, global lru removal, struct
page_cgroup reduction, soft limit implementation) and the recent
feature discussions on linux-mm.

The long-term idea is to have memcgs no longer bolted to the side of
the mm code, but integrate it as much as possible such that there is a
native understanding of containers, and that the traditional !memcg
setup is just a singular group. This series is an approach in that
direction.

It is a rather early snapshot, WIP, barely tested etc., but I wanted
to get your opinions before further pursuing it. It is also part of
my counter-argument to the proposals of adding memcg-reclaim-related
user interfaces at this point in time, so I wanted to push this out
the door before things are merged into .40.

The patches are quite big, I am still looking for things to factor and
split out, sorry for this. Documentation is on its way as well ;)

#1 and #2 are boring preparational work. #3 makes traditional reclaim
in vmscan.c memcg-aware, which is a prerequisite for both removal of
the global lru in #5 and the way I reimplemented soft limit reclaim in
#6.

The diffstat so far looks like this:

include/linux/memcontrol.h | 84 +++--
include/linux/mm_inline.h | 15 +-
include/linux/mmzone.h | 10 +-
include/linux/page_cgroup.h | 35 --
include/linux/swap.h | 4 -
mm/memcontrol.c | 860 +++++++++++++------------------------------
mm/page_alloc.c | 2 +-
mm/page_cgroup.c | 39 +--
mm/swap.c | 20 +-
mm/vmscan.c | 273 +++++++--------
10 files changed, 452 insertions(+), 890 deletions(-)

It is based on .39-rc7 because of the memcg churn in -mm, but I'll
rebase it in the near future.

Discuss!

Hannes
--
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/