Re: [RFC PATCH -v2] mm, oom: introduce oom reaper

From: Michal Hocko
Date: Tue Dec 08 2015 - 06:07:01 EST


On Tue 08-12-15 07:19:42, Tetsuo Handa wrote:
> Michal Hocko wrote:
> > Yes you are right! The reference count should be incremented before
> > publishing the new mm_to_reap. I thought that an elevated ref. count by
> > the caller would be enough but this was clearly wrong. Does the update
> > below looks better?
>
> I think that moving mmdrop() from oom_kill_process() to
> oom_reap_vmas() xor wake_oom_reaper() makes the patch simpler.

It surely is less lines of code but I am not sure it is simpler. I do
not think we should drop the reference in a different path than it is
taken. Maybe we will grow more users of wake_oom_reaper in the future
and this is quite subtle behavior.

>
> rcu_read_unlock();
>
> + if (can_oom_reap)
> + wake_oom_reaper(mm); /* will call mmdrop() */
> + else
> + mmdrop(mm);
> - mmdrop(mm);
> put_task_struct(victim);
> }

Thanks!
--
Michal Hocko
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/