On Thu, May 12, 2011 at 7:53 AM, Johannes Weiner wrote: > 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 memcg-reclaim-related user interface I assume was the watermark configurable tunable we were talking about in the per-memcg background reclaim patch. I think we got some agreement to remove the watermark tunable at the first step. But the newly added memory.soft_limit_async_reclaim as you proposed seems to be a usable interface. > > 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 ;) > This is a quite bit patchset includes different part. We might want to split it into steps. I will read them through now. --Ying > > #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 >