On Tue 30-07-13 10:32:28, Johannes Weiner wrote: > On Tue, Jul 30, 2013 at 04:09:13PM +0200, Michal Hocko wrote: > > On Fri 26-07-13 17:28:09, Johannes Weiner wrote: [...] > > > } else { > > > schedule(); > > > + mem_cgroup_unmark_under_oom(memcg); > > > finish_wait(&memcg_oom_waitq, &owait.wait); > > > } > > > - spin_lock(&memcg_oom_lock); > > > - if (locked) > > > - mem_cgroup_oom_unlock(memcg); > > > - memcg_wakeup_oom(memcg); > > > - spin_unlock(&memcg_oom_lock); > > > > > > - mem_cgroup_unmark_under_oom(memcg); > > > + if (locked) { > > > + mem_cgroup_oom_unlock(memcg); > > > + /* > > > + * There is no guarantee that a OOM-lock contender > > > + * sees the wakeups triggered by the OOM kill > > > + * uncharges. Wake any sleepers explicitely. > > > + */ > > > + memcg_oom_recover(memcg); > > > > This will be a noop because memcg is no longer under_oom (you wanted > > memcg_wakeup_oom here I guess). Moreover, even the killed wouldn't wake > > up anybody for the same reason. > > Anybody entering this path will increase the under_oom counter. The > killer decreases it again, but everybody who is sleeping because they > failed the trylock still hasn't unmarked the hierarchy (they call > schedule() before unmark_under_oom()). So we issue wakeups when there > is somebody waiting for the lock. True, sorry for the noise. Feel free to add Acked-by: Michal Hocko <mhocko@xxxxxxx> -- 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>