On Wed 13-02-13 12:11:59, Glauber Costa wrote: > On 02/12/2013 09:37 PM, Johannes Weiner wrote: > >> > All reads from root->dead_count are atomic already, so I am not sure > >> > what you mean here. Anyway, I hope I won't make this even more confusing > >> > if I post what I have right now: > > Yes, but we are doing two reads. Can't the memcg that we'll store in > > last_visited be offlined during this and be freed after we drop the > > rcu read lock? If we had just one read, we would detect this > > properly. > > > > I don't want to add any more confusion to an already fun discussion, but > IIUC, you are trying to avoid triggering a second round of reclaim in an > already dead memcg, right? No this is not about the second round of the reclaim but rather iteration racing with removal. And we want to do it as lightweight as possible. We cannot work with memcg directly because it might have disappeared in the mean time and we do not want to hold a reference on it because there would be no guarantee somebody will release it later on. So mark_dead && test_and_clear_dead would not work in this context. [...] -- Michal Hocko SUSE Labs -- 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>