On Thu 22-03-18 19:51:56, Tetsuo Handa wrote: [...] > The whole point of the sleep is to give the OOM victim some time to exit. Yes, and that is why we sleep under the lock because that would rule all other potential out_of_memory callers from jumping in. > However, the sleep can prevent contending allocating paths from hitting > the OOM path again even if the OOM victim was able to exit. We need to > make sure that the thread which called out_of_memory() will release > oom_lock shortly. Thus, this patch brings the sleep to outside of the OOM > path. Since the OOM reaper waits for the oom_lock, this patch unlikely > allows contending allocating paths to hit the OOM path earlier than now. The sleep outside of the lock doesn't make much sense to me. It is basically contradicting its original purpose. If we do want to throttle direct reclaimers than OK but this patch is not the way how to do that. If you really believe that the sleep is more harmful than useful, then fair enough, I would rather see it removed than shuffled all over outside the lock. So Nacked-by: Michal Hocko <mhocko@xxxxxxxx> -- Michal Hocko SUSE Labs