Re: [patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-24 Thread David Rientjes
On Wed, 25 Jul 2018, Tetsuo Handa wrote: > > If exit_mmap() gets preempted indefinitely before it can free any memory, > > we are better off oom killing another process. The purpose of the timeout > > is to give an oom victim an amount of time to free its memory and exit > > before selecting

Re: [patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-24 Thread David Rientjes
On Wed, 25 Jul 2018, Tetsuo Handa wrote: > > If exit_mmap() gets preempted indefinitely before it can free any memory, > > we are better off oom killing another process. The purpose of the timeout > > is to give an oom victim an amount of time to free its memory and exit > > before selecting

Re: [patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-24 Thread Tetsuo Handa
On 2018/07/25 7:51, David Rientjes wrote: > On Wed, 25 Jul 2018, Tetsuo Handa wrote: > You might worry about situations where __oom_reap_task_mm() is a no-op. But that is not always true. There is no point with emitting pr_info("oom_reaper: unable to reap pid:%d (%s)\n",

Re: [patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-24 Thread Tetsuo Handa
On 2018/07/25 7:51, David Rientjes wrote: > On Wed, 25 Jul 2018, Tetsuo Handa wrote: > You might worry about situations where __oom_reap_task_mm() is a no-op. But that is not always true. There is no point with emitting pr_info("oom_reaper: unable to reap pid:%d (%s)\n",

Re: [patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-24 Thread David Rientjes
On Wed, 25 Jul 2018, Tetsuo Handa wrote: > >> You might worry about situations where __oom_reap_task_mm() is a no-op. > >> But that is not always true. There is no point with emitting > >> > >> pr_info("oom_reaper: unable to reap pid:%d (%s)\n", ...); > >> debug_show_all_locks(); > >> > >>

Re: [patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-24 Thread David Rientjes
On Wed, 25 Jul 2018, Tetsuo Handa wrote: > >> You might worry about situations where __oom_reap_task_mm() is a no-op. > >> But that is not always true. There is no point with emitting > >> > >> pr_info("oom_reaper: unable to reap pid:%d (%s)\n", ...); > >> debug_show_all_locks(); > >> > >>

Re: [patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-24 Thread Tetsuo Handa
On 2018/07/25 6:45, David Rientjes wrote: > On Sat, 21 Jul 2018, Tetsuo Handa wrote: > >> You can't apply "[patch v4] mm, oom: fix unnecessary killing of additional >> processes" >> because Michal's patch which removes oom_lock serialization was added to

Re: [patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-24 Thread Tetsuo Handa
On 2018/07/25 6:45, David Rientjes wrote: > On Sat, 21 Jul 2018, Tetsuo Handa wrote: > >> You can't apply "[patch v4] mm, oom: fix unnecessary killing of additional >> processes" >> because Michal's patch which removes oom_lock serialization was added to

Re: [patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-24 Thread David Rientjes
On Sat, 21 Jul 2018, Tetsuo Handa wrote: > You can't apply "[patch v4] mm, oom: fix unnecessary killing of additional > processes" > because Michal's patch which removes oom_lock serialization was added to -mm > tree. > I've rebased the patch to linux-next and posted

Re: [patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-24 Thread David Rientjes
On Sat, 21 Jul 2018, Tetsuo Handa wrote: > You can't apply "[patch v4] mm, oom: fix unnecessary killing of additional > processes" > because Michal's patch which removes oom_lock serialization was added to -mm > tree. > I've rebased the patch to linux-next and posted

Re: [patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-20 Thread Tetsuo Handa
> might have multiple TB memory which could take long time. >> > > This patch does not involve deltas for oom_lock here, it can certainly be > changed on top of this patch. I'm not attempting to address any oom_lock > issue here. It should pose no roadblock for you. You c

Re: [patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-20 Thread Tetsuo Handa
> might have multiple TB memory which could take long time. >> > > This patch does not involve deltas for oom_lock here, it can certainly be > changed on top of this patch. I'm not attempting to address any oom_lock > issue here. It should pose no roadblock for you. You c

Re: [patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-20 Thread David Rientjes
On Sat, 21 Jul 2018, Tetsuo Handa wrote: > > diff --git a/mm/mmap.c b/mm/mmap.c > > --- a/mm/mmap.c > > +++ b/mm/mmap.c > > @@ -3066,25 +3066,27 @@ void exit_mmap(struct mm_struct *mm) > > if (unlikely(mm_is_oom_victim(mm))) { > > /* > > * Manually reap the mm to free

Re: [patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-20 Thread David Rientjes
On Sat, 21 Jul 2018, Tetsuo Handa wrote: > > diff --git a/mm/mmap.c b/mm/mmap.c > > --- a/mm/mmap.c > > +++ b/mm/mmap.c > > @@ -3066,25 +3066,27 @@ void exit_mmap(struct mm_struct *mm) > > if (unlikely(mm_is_oom_victim(mm))) { > > /* > > * Manually reap the mm to free

Re: [patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-20 Thread Tetsuo Handa
On 2018/07/21 5:14, David Rientjes wrote: > diff --git a/mm/mmap.c b/mm/mmap.c > --- a/mm/mmap.c > +++ b/mm/mmap.c > @@ -3066,25 +3066,27 @@ void exit_mmap(struct mm_struct *mm) > if (unlikely(mm_is_oom_victim(mm))) { > /* >* Manually reap the mm to free as much

Re: [patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-20 Thread Tetsuo Handa
On 2018/07/21 5:14, David Rientjes wrote: > diff --git a/mm/mmap.c b/mm/mmap.c > --- a/mm/mmap.c > +++ b/mm/mmap.c > @@ -3066,25 +3066,27 @@ void exit_mmap(struct mm_struct *mm) > if (unlikely(mm_is_oom_victim(mm))) { > /* >* Manually reap the mm to free as much

[patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-20 Thread David Rientjes
The oom reaper ensures forward progress by setting MMF_OOM_SKIP itself if it cannot reap an mm. This can happen for a variety of reasons, including: - the inability to grab mm->mmap_sem in a sufficient amount of time, - when the mm has blockable mmu notifiers that could cause the oom reaper

[patch v4] mm, oom: fix unnecessary killing of additional processes

2018-07-20 Thread David Rientjes
The oom reaper ensures forward progress by setting MMF_OOM_SKIP itself if it cannot reap an mm. This can happen for a variety of reasons, including: - the inability to grab mm->mmap_sem in a sufficient amount of time, - when the mm has blockable mmu notifiers that could cause the oom reaper