All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC] rework mem_cgroup iterator
@ 2012-11-13 15:30 ` Michal Hocko
  0 siblings, 0 replies; 62+ messages in thread
From: Michal Hocko @ 2012-11-13 15:30 UTC (permalink / raw)
  To: linux-mm
  Cc: linux-kernel, KAMEZAWA Hiroyuki, Johannes Weiner, Ying Han,
	Tejun Heo, Glauber Costa

Hi all,
this patch set tries to make mem_cgroup_iter saner in the way how it
walks hierarchies. css->id based traversal is far from being ideal as it
is not deterministic because it depends on the creation ordering.

Diffstat looks promising but it is fair the say that the biggest cleanup is
just css_get_next removal. The memcg code has grown a bit but I think it is
worth the resulting outcome (the sanity ;)).

The first patch fixes a potential misbehaving which I haven't seen but the
fix is needed for the later patches anyway. We could take it alone as well
but I do not have any bug report to base the fix on.

The second patch replaces css_get_next by cgroup iterators which are
scheduled for 3.8 in Tejun's tree and I depend on the following two patches:
fe1e904c cgroup: implement generic child / descendant walk macros
7e187c6c cgroup: use rculist ops for cgroup->children

The third patch is an attempt for simplification of the mem_cgroup_iter. It
basically removes all css usages to make the code easier. The next patch
removes the big while(!memcg) loop around the iterating logic. It could have
been folded into #3 but I rather have the rework separate from the code
moving noise.

The last patch just removes css_get_next as there is no user for it any
longer.

I am also thinking that leaf-to-root iteration makes more sense but this
patch is not included in the series yet because I have to think some
more about the justification.

So far I didn't get to testing but I am posting this early if everybody is
OK with this change.

Any thoughts?

Cumulative diffstat:
 include/linux/cgroup.h |    7 ---
 kernel/cgroup.c        |   49 ---------------------
 mm/memcontrol.c        |  110 +++++++++++++++++++++++++++++++++---------------
 3 files changed, 75 insertions(+), 91 deletions(-)

Michal Hocko (5):
      memcg: synchronize per-zone iterator access by a spinlock
      memcg: rework mem_cgroup_iter to use cgroup iterators
      memcg: simplify mem_cgroup_iter
      memcg: clean up mem_cgroup_iter
      cgroup: remove css_get_next


^ permalink raw reply	[flat|nested] 62+ messages in thread

end of thread, other threads:[~2012-11-19 15:11 UTC | newest]

Thread overview: 62+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-13 15:30 [RFC] rework mem_cgroup iterator Michal Hocko
2012-11-13 15:30 ` Michal Hocko
2012-11-13 15:30 ` [RFC 1/5] memcg: synchronize per-zone iterator access by a spinlock Michal Hocko
2012-11-13 15:30   ` Michal Hocko
2012-11-14  0:03   ` Kamezawa Hiroyuki
2012-11-14  0:03     ` Kamezawa Hiroyuki
2012-11-13 15:30 ` [RFC 2/5] memcg: rework mem_cgroup_iter to use cgroup iterators Michal Hocko
2012-11-13 15:30   ` Michal Hocko
2012-11-13 16:14   ` Tejun Heo
2012-11-13 16:14     ` Tejun Heo
2012-11-14  8:51     ` Michal Hocko
2012-11-14  8:51       ` Michal Hocko
2012-11-14 18:52       ` Tejun Heo
2012-11-14 18:52         ` Tejun Heo
2012-11-15  9:51         ` Michal Hocko
2012-11-15  9:51           ` Michal Hocko
2012-11-15 14:47           ` Tejun Heo
2012-11-15 14:47             ` Tejun Heo
2012-11-15 15:12             ` Michal Hocko
2012-11-15 15:12               ` Michal Hocko
2012-11-15 15:31               ` Tejun Heo
2012-11-15 15:31                 ` Tejun Heo
2012-11-15 16:15                 ` Michal Hocko
2012-11-15 16:15                   ` Michal Hocko
2012-11-14  0:20   ` Kamezawa Hiroyuki
2012-11-14  0:20     ` Kamezawa Hiroyuki
2012-11-14 10:10     ` Michal Hocko
2012-11-14 10:10       ` Michal Hocko
2012-11-15  4:12       ` Kamezawa Hiroyuki
2012-11-15  4:12         ` Kamezawa Hiroyuki
2012-11-15  9:52         ` Michal Hocko
2012-11-15  9:52           ` Michal Hocko
2012-11-19 14:05       ` Michal Hocko
2012-11-19 14:05         ` Michal Hocko
2012-11-19 15:11   ` Michal Hocko
2012-11-19 15:11     ` Michal Hocko
2012-11-13 15:30 ` [RFC 3/5] memcg: simplify mem_cgroup_iter Michal Hocko
2012-11-13 15:30   ` Michal Hocko
2012-11-13 15:30 ` [RFC 4/5] memcg: clean up mem_cgroup_iter Michal Hocko
2012-11-13 15:30   ` Michal Hocko
2012-11-13 15:30 ` [RFC 5/5] cgroup: remove css_get_next Michal Hocko
2012-11-13 15:30   ` Michal Hocko
2012-11-14  0:13 ` [RFC] rework mem_cgroup iterator Kamezawa Hiroyuki
2012-11-14  0:13   ` Kamezawa Hiroyuki
2012-11-14  1:55 ` Li Zefan
2012-11-14  1:55   ` Li Zefan
2012-11-14  8:36   ` Michal Hocko
2012-11-14  8:36     ` Michal Hocko
2012-11-14 18:30     ` Tejun Heo
2012-11-14 18:30       ` Tejun Heo
2012-11-15  2:12   ` Kamezawa Hiroyuki
2012-11-15  2:12     ` Kamezawa Hiroyuki
2012-11-14 16:17 ` Glauber Costa
2012-11-14 16:17   ` Glauber Costa
2012-11-14  8:40   ` Michal Hocko
2012-11-14  8:40     ` Michal Hocko
2012-11-14 18:41   ` Tejun Heo
2012-11-14 18:41     ` Tejun Heo
2012-11-15  2:44     ` Glauber Costa
2012-11-15  2:44       ` Glauber Costa
2012-11-14 18:46       ` Tejun Heo
2012-11-14 18:46         ` Tejun Heo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.