On Tue 05-10-21 16:52:31, Vasily Averin wrote: > v3: no functional changes, just improved patch description You haven't addressed my review feedback regarding the oom invocation. Let me paste it here again: : > @@ -1607,7 +1607,7 @@ static bool mem_cgroup_out_of_memory(struct mem_cgroup *memcg, gfp_t gfp_mask, : > * A few threads which were not waiting at mutex_lock_killable() can : > * fail to bail out. Therefore, check again after holding oom_lock. : > */ : > - ret = should_force_charge() || out_of_memory(&oc); : > + ret = task_is_dying() || out_of_memory(&oc); : : task_is_dying check will prevent the oom killer for dying tasks. There : is an additional bail out at out_of_memory layer. These checks are now : leading to a completely different behavior. Currently we simply use : "unlimited" reserves and therefore we do not have to kill any task. Now : the charge fails without using all reclaim measures. So I believe we : should drop those checks for memcg oom paths. I have to think about this : some more because I might be missing some other side effects. -- Michal Hocko SUSE Labs