Re: [patch] mm, oom: prevent soft lockup on memcg oom for UP systems

From: Tetsuo Handa
Date: Fri Mar 13 2020 - 19:33:15 EST


On 2020/03/14 8:15, Tetsuo Handa wrote:
> If current thread is
> an OOM victim, schedule_timeout_killable(1) will give other threads (including
> the OOM reaper kernel thread) CPU time to run.

If current thread is an OOM victim, schedule_timeout_killable(1) will give other
threads (including the OOM reaper kernel thread) CPU time to run, by leaving
try_charge() path due to should_force_charge() == true and reaching do_exit() path
instead of returning to userspace code doing "for (;;);".

Unless the problem is that current thread cannot reach should_force_charge() check,
schedule_timeout_killable(1) should work.