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
- 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
- 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
- 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.]
to post comments)