Re: [PATCH 4/4] mm, oom: Fix unnecessary killing of additional processes.
From: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Date: 2018-09-06 14:06:55
On 2018/09/06 22:56, Michal Hocko wrote:
On Thu 06-09-18 22:40:24, Tetsuo Handa wrote:quoted
On 2018/09/06 21:05, Michal Hocko wrote:quoted
quoted
If you are too busy, please show "the point of no-blocking" using source code instead. If such "the point of no-blocking" really exists, it can be executed by allocating threads.I would have to study this much deeper but I _suspect_ that we are not taking any blocking locks right after we return from unmap_vmas. In other words the place we used to have synchronization with the oom_reaper in the past.See commit 97b1255cb27c551d ("mm,oom_reaper: check for MMF_OOM_SKIP before complaining"). Since this dependency is inode-based (i.e. irrelevant with OOM victims), waiting for this lock can livelock. So, where is safe "the point of no-blocking" ?Ohh, right unlink_file_vma and its i_mmap_rwsem lock. As I've said I have to think about that some more. Maybe we can split those into two parts.
Meanwhile, I'd really like to use timeout based back off. Like I wrote at http://lkml.kernel.org/r/201809060703.w8673Kbs076435@www262.sakura.ne.jp , we need to wait for some period after all. We can replace timeout based back off after we got safe "the point of no-blocking" .