Re: [PATCH] mm: oom: do not reap task if there are live threads in threadgroup

From: Michal Hocko
Date: Tue May 24 2016 - 07:46:19 EST


On Tue 24-05-16 14:00:28, Vladimir Davydov wrote:
> If the current process is exiting, we don't invoke oom killer, instead
> we give it access to memory reserves and try to reap its mm in case
> nobody is going to use it. There's a mistake in the code performing this
> check - we just ignore any process of the same thread group no matter if
> it is exiting or not - see try_oom_reaper. Fix it.

This is not a problem with the current code because of 98748bd72200
("oom: consider multi-threaded tasks in task_will_free_mem") which got
merged later on, however.

The check is not needed so we can indeed drop it.

Fixes: 3ef22dfff239 ("oom, oom_reaper: try to reap tasks which skip
regular OOM killer path")

Just in case somebody wants to backport only 3ef22dfff239.

> Signed-off-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>

Acked-by: Michal Hocko <mhocko@xxxxxxxx>

Thanks!

> ---
> mm/oom_kill.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/mm/oom_kill.c b/mm/oom_kill.c
> index c0e37dd1422f..03bf7a472296 100644
> --- a/mm/oom_kill.c
> +++ b/mm/oom_kill.c
> @@ -618,8 +618,6 @@ void try_oom_reaper(struct task_struct *tsk)
>
> if (!process_shares_mm(p, mm))
> continue;
> - if (same_thread_group(p, tsk))
> - continue;
> if (fatal_signal_pending(p))
> continue;
>
> --
> 2.1.4

--
Michal Hocko
SUSE Labs