LWN.net Logo

KS2012: The memcg/mm minisummit

By Michael Kerrisk
September 17, 2012
2012 Kernel Summit

Day two (28 August) of the 2012 Kernel Summit included a day-long minisummit entitled "memcg minisummit" chaired by Ying Han and Johannes Weiner. Ying noted that the original minisummit title was something of a misnomer, since it had grown in scope to cover both memory control groups (memcg) and memory-management (mm) topics generally.

The session began with a statement that it was assumed that everyone in the room was familiar with previous discussions on the topics to be discussed. (Some of these previous discussions took place in the April 2012 LSF/MM meeting. Coverage of that event can be found in LWN articles here and here.) Given the context of the summit, this assumption was considered reasonable by everyone, though readers without a memory-management background may find the record of the discussion a little hard to follow at times.

Except for one very brief topic, coverage of the various sessions is split out into separate articles. The topics covered were as follows:

  • Improving kernel-memory accounting for memory cgroups; some users need better accounting of kernel-memory usage inside cgroups (control groups), in order to to prevent poorly behaved cgroups from exhausting system memory.

  • Kernel-memory shrinking; a discussion stemming from Ying Han's patches to implement a per-cgroup slab shrinker.

  • Improving memory cgroups performance for non-users; how do we resolve the problem that the current memcg implementation has a performance impact even when memory cgroups are not being used?

  • Memory-management performance topics; short discussions of various performance and scalability topics.

  • Hierarchical reclaim for memory cgroups; what is the best way to reclaim memory from soft-limited trees of memory cgroups when the system is under memory pressure?

  • Reclaiming mapped pages; toward improving reclaim of mapped pages to handle a wider variety of workloads.

  • Volatile ranges; looking at various ideas on improving the implementation of this proposed kernel feature.

  • Memory-management patches work: Michal Hocko briefly discussed the origin of the memcg-devel tree. This tree has evolved into being a general memory-management development tree that is not rebased like linux-next, but instead takes a mainline release from Linus Torvald's tree and applies Andrew Morton's patches against them. This gives memory-management developers a common, relatively stable ground to implement against. The tree already has a few users and they seem to be happy so far. (Since the meeting, the tree has been moved to kernel.org, and renamed from memcg-devel to mm.)

  • Moving zcache toward the mainline; what are the barriers to getting the compressed cache feature merged?

  • Dirty/writeback LRU; a discussion of Fengguang Wu's proposal to split the file LRU list into clean and dirty lists.

  • Proportional I/O controller; two proposed solutions to improve its performance for cgroup workloads.

  • Shared-memory accounting in memory cgroups; dealing with some scenarios where memory cgroups are unfairly charged for memory usage.

  • NUMA scheduling; a discussion of competing patch sets that implement this feature.

By and large, this was considered a successful meeting by the memory-management developers in attendance. Ying Han kept everyone on track and the meeting to schedule, and each of the topics were discussed in detail; good progress was made on many issues, and the participants gained insights into several issues that will affect an increasing number of users in the future. Hopefully, some of the remaining issues will now be more easily resolved on mailing lists.

[Michael Kerrisk would like to thank Fengguang Wu, Glauber Costa, Johannes Weiner, Michal Hocko, and especially Mel Gorman for assistance with the write-up of the minisummit.]


(Log in to post comments)

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds