mm, oom: enforce exit_oom_victim on current task
authorTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Fri, 7 Oct 2016 23:59:03 +0000 (16:59 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 8 Oct 2016 01:46:28 +0000 (18:46 -0700)
There are no users of exit_oom_victim on !current task anymore so enforce
the API to always work on the current.

Link: http://lkml.kernel.org/r/1472119394-11342-8-git-send-email-mhocko@kernel.org
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: Michal Hocko <mhocko@suse.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Vladimir Davydov <vdavydov@parallels.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/oom.h
kernel/exit.c
mm/oom_kill.c

index 0f1b9da108e4539ef6d91783a3b4f0cb835bf5a6..b4e36e92bc878f94d013b72eec7c44a16d8096e9 100644 (file)
@@ -69,7 +69,7 @@ extern unsigned long oom_badness(struct task_struct *p,
 
 extern bool out_of_memory(struct oom_control *oc);
 
-extern void exit_oom_victim(struct task_struct *tsk);
+extern void exit_oom_victim(void);
 
 extern int register_oom_notifier(struct notifier_block *nb);
 extern int unregister_oom_notifier(struct notifier_block *nb);
index 1e1d913914c0f75d2656fbf9afa2db3a03447812..9d68c45ebbe30e34290dfda571f7d75e01ce3d97 100644 (file)
@@ -511,7 +511,7 @@ static void exit_mm(struct task_struct *tsk)
        mm_update_next_owner(mm);
        mmput(mm);
        if (test_thread_flag(TIF_MEMDIE))
-               exit_oom_victim(tsk);
+               exit_oom_victim();
 }
 
 static struct task_struct *find_alive_thread(struct task_struct *p)
index 895a51fe8e18556164d2d7474a398e41c94db81a..3b990544db6d2989cd2a79c9f26bf66f1c9ee5ba 100644 (file)
@@ -662,10 +662,9 @@ static void mark_oom_victim(struct task_struct *tsk)
 /**
  * exit_oom_victim - note the exit of an OOM victim
  */
-void exit_oom_victim(struct task_struct *tsk)
+void exit_oom_victim(void)
 {
-       if (!test_and_clear_tsk_thread_flag(tsk, TIF_MEMDIE))
-               return;
+       clear_thread_flag(TIF_MEMDIE);
 
        if (!atomic_dec_return(&oom_victims))
                wake_up_all(&oom_victims_wait);