Hello, Michal, Johannes. On Mon, Dec 16, 2013 at 06:15:27PM +0100, Michal Hocko wrote: > > We already do that, swap records hold a css reference. We do the put > > in mem_cgroup_uncharge_swap(). > > Dohh! You are right I have totally missed that the css_get is burried in > __mem_cgroup_uncharge_common and the counterpart is in > mem_cgroup_uncharge_swap > (which is less unexpected). > > > It really strikes me as odd that we recycle the cgroup ID while there > > are still references to the cgroup in circulation. > > That is true but even with this fixed I still think that the Hugh's > approach makes a lot of sense.
I thought about this a bit and I think the id really should be per subsystem - ie. like css_id but just a dumb id as cgrp->id. The reason is that cgroup's lifetime and css's lifetime will soon be decoupled. ie. if a css is disabled and re-enabled on the same cgroup, there can be two css's associated with a single cgroup. cgroup_css() and css iterators should block accesses to css's which are being drained but it does make sense for id lookup to work until the css is actually released. That said, for now, whatever works is fine and if Hugh's suggested change is desirable anyway, that should do for now. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/