On Mon, 10 Feb 2014, Michal Hocko wrote: > On Fri 07-02-14 12:04:20, Johannes Weiner wrote: > > Reparenting memory charges in the css_free() callback was meant as a > > temporary fix for charges that race with offlining, but after some > > follow-up discussion, it turns out that this is really the right place > > to reparent charges because it guarantees none are in-flight. Perhaps: I'm not as gung-ho for this new orthodoxy as you are. > > > > Make clear that the reparenting in css_offline() is an optimistic > > sweep of established charges because swapout records might hold up > > css_free() indefinitely, but that in fact the css_free() reparenting > > is the properly synchronized one. It worries me that you keep referring to the memsw usage, but forget the kmem usage, which also delays css_free() indefinitely. Or am I out-of-date? Seems not, mem_cgroup_reparent_chages() still waits for memcg->res - memcg->kmem to reach 0, knowing there's not much certainty that kmem will reach 0 any time soon. I think you need a plan for what to do with the kmem pinning, before going much further in reworking the memsw pinning. Or at the least, please mention it in this patch's comment. Hugh > > > > Signed-off-by: Johannes Weiner <hannes@xxxxxxxxxxx> > > OK, I am still thinking about 2 stage reparenting. LRU drain part called > from css_offline and charge drain from css_free. But this is a > sufficient for now. > > Acked-by: Michal Hocko <mhocko@xxxxxxx> -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>