Re: [patch -mm] mm, oom: remove oom_lock from exit_mmap

2018-07-16 Thread David Rientjes
On Sat, 14 Jul 2018, Tetsuo Handa wrote: > David is making changes using timeout based back off (in linux-next.git) > which is inappropriately trying to use MMF_UNSTABLE for two purposes. > If you believe there is a problem with the use of MMF_UNSTABLE as it sits in -mm, please follow up direct

Re: [patch -mm] mm, oom: remove oom_lock from exit_mmap

2018-07-16 Thread David Rientjes
On Fri, 13 Jul 2018, Michal Hocko wrote: > > diff --git a/mm/oom_kill.c b/mm/oom_kill.c > > index 0fe4087d5151..e6328cef090f 100644 > > --- a/mm/oom_kill.c > > +++ b/mm/oom_kill.c > > @@ -488,9 +488,11 @@ void __oom_reap_task_mm(struct mm_struct *mm) > > * Tell all users of get_user/copy_from

Re: [patch -mm] mm, oom: remove oom_lock from exit_mmap

2018-07-16 Thread Michal Hocko
On Mon 16-07-18 19:38:21, Tetsuo Handa wrote: > On 2018/07/16 16:44, Michal Hocko wrote: > >> If setting MMF_OOM_SKIP is guarded by oom_lock, we can enforce > >> last second allocation attempt like below. > >> > >> CPU 0 CPU 1 > >> > >> mutex_trylock(&oom_lo

Re: [patch -mm] mm, oom: remove oom_lock from exit_mmap

2018-07-16 Thread Tetsuo Handa
On 2018/07/16 16:44, Michal Hocko wrote: >> If setting MMF_OOM_SKIP is guarded by oom_lock, we can enforce >> last second allocation attempt like below. >> >> CPU 0 CPU 1 >> >> mutex_trylock(&oom_lock) in __alloc_pages_may_oom() succeeds. >> get_page_from_

Re: [patch -mm] mm, oom: remove oom_lock from exit_mmap

2018-07-16 Thread Michal Hocko
On Mon 16-07-18 16:04:26, Tetsuo Handa wrote: > On 2018/07/16 15:13, Michal Hocko wrote: > > On Sat 14-07-18 06:18:58, Tetsuo Handa wrote: > >>> @@ -3073,9 +3073,7 @@ void exit_mmap(struct mm_struct *mm) > >>>* which clears VM_LOCKED, otherwise the oom reaper cannot > >>>* r

Re: [patch -mm] mm, oom: remove oom_lock from exit_mmap

2018-07-16 Thread Tetsuo Handa
On 2018/07/16 15:13, Michal Hocko wrote: > On Sat 14-07-18 06:18:58, Tetsuo Handa wrote: >>> @@ -3073,9 +3073,7 @@ void exit_mmap(struct mm_struct *mm) >>> * which clears VM_LOCKED, otherwise the oom reaper cannot >>> * reliably test it. >>> */ >>> -

Re: [patch -mm] mm, oom: remove oom_lock from exit_mmap

2018-07-15 Thread Michal Hocko
On Sat 14-07-18 06:18:58, Tetsuo Handa wrote: > On 2018/07/13 23:26, Michal Hocko wrote: > > On Thu 12-07-18 14:34:00, David Rientjes wrote: > > [...] > >> diff --git a/mm/oom_kill.c b/mm/oom_kill.c > >> index 0fe4087d5151..e6328cef090f 100644 > >> --- a/mm/oom_kill.c > >> +++ b/mm/oom_kill.c > >>

Re: [patch -mm] mm, oom: remove oom_lock from exit_mmap

2018-07-13 Thread Tetsuo Handa
On 2018/07/13 23:26, Michal Hocko wrote: > On Thu 12-07-18 14:34:00, David Rientjes wrote: > [...] >> diff --git a/mm/oom_kill.c b/mm/oom_kill.c >> index 0fe4087d5151..e6328cef090f 100644 >> --- a/mm/oom_kill.c >> +++ b/mm/oom_kill.c >> @@ -488,9 +488,11 @@ void __oom_reap_task_mm(struct mm_struct

Re: [patch -mm] mm, oom: remove oom_lock from exit_mmap

2018-07-13 Thread Michal Hocko
On Thu 12-07-18 14:34:00, David Rientjes wrote: [...] > diff --git a/mm/oom_kill.c b/mm/oom_kill.c > index 0fe4087d5151..e6328cef090f 100644 > --- a/mm/oom_kill.c > +++ b/mm/oom_kill.c > @@ -488,9 +488,11 @@ void __oom_reap_task_mm(struct mm_struct *mm) >* Tell all users of get_user/copy_fr

Re: [patch -mm] mm, oom: remove oom_lock from exit_mmap

2018-07-12 Thread Tetsuo Handa
What a simplified description of oom_lock... Positive effects (1) Serialize "setting TIF_MEMDIE and calling __thaw_task()/atomic_inc() from mark_oom_victim()" and "setting oom_killer_disabled = true from oom_killer_disable()". (2) Serialize all printk() messages from out_of_memory(). (3

[patch -mm] mm, oom: remove oom_lock from exit_mmap

2018-07-12 Thread David Rientjes
oom_lock isn't needed for __oom_reap_task_mm(). If MMF_UNSTABLE is already set for the mm, we can simply back out immediately since oom reaping is already in progress (or done). Signed-off-by: David Rientjes --- mm/mmap.c | 2 -- mm/oom_kill.c | 6 -- 2 files changed, 4 insertions(+),