On Wed 25-03-15 02:17:09, Johannes Weiner wrote: > It turns out that the mechanism to wait for exiting OOM victims is > less generic than it looks: it won't issue wakeups unless the OOM > killer is disabled. > > The reason this check was added was the thought that, since only the > OOM disabling code would wait on this queue, wakeup operations could > be saved when that specific consumer is known to be absent. > > However, this is quite the handgrenade. Later attempts to reuse the > waitqueue for other purposes will lead to completely unexpected bugs > and the failure mode will appear seemingly illogical. Generally, > providers shouldn't make unnecessary assumptions about consumers. > > This could have been replaced with waitqueue_active(), but it only > saves a few instructions in one of the coldest paths in the kernel. > Simply remove it. > > Signed-off-by: Johannes Weiner <hannes@xxxxxxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxx> > --- > mm/oom_kill.c | 6 +----- > 1 file changed, 1 insertion(+), 5 deletions(-) > > diff --git a/mm/oom_kill.c b/mm/oom_kill.c > index 88aa9ba40fa5..d3490b019d46 100644 > --- a/mm/oom_kill.c > +++ b/mm/oom_kill.c > @@ -437,11 +437,7 @@ void exit_oom_victim(void) > { > clear_thread_flag(TIF_MEMDIE); > > - /* > - * There is no need to signal the lasst oom_victim if there > - * is nobody who cares. > - */ > - if (!atomic_dec_return(&oom_victims) && oom_killer_disabled) > + if (!atomic_dec_return(&oom_victims)) > wake_up_all(&oom_victims_wait); > } > > -- > 2.3.3 > -- Michal Hocko SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html