oom: kill the insufficient and no longer needed PT_TRACE_EXIT check
authorOleg Nesterov <oleg@redhat.com>
Sat, 13 Dec 2014 00:56:27 +0000 (16:56 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 13 Dec 2014 20:42:49 +0000 (12:42 -0800)
After the previous patch we can remove the PT_TRACE_EXIT check in
oom_scan_process_thread(), it was added to handle the case when the
coredumping was "frozen" by ptrace, but it doesn't really work.  If
nothing else, we would need to check all threads which could share the
same ->mm to make it more or less correct.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Cc: Cong Wang <xiyou.wangcong@gmail.com>
Cc: David Rientjes <rientjes@google.com>
Acked-by: Michal Hocko <mhocko@suse.cz>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/oom_kill.c

index f694ef0..d503e9c 100644 (file)
@@ -281,14 +281,9 @@ enum oom_scan_t oom_scan_process_thread(struct task_struct *task,
        if (oom_task_origin(task))
                return OOM_SCAN_SELECT;
 
-       if (task_will_free_mem(task) && !force_kill) {
-               /*
-                * If this task is not being ptraced on exit, then wait for it
-                * to finish before killing some other task unnecessarily.
-                */
-               if (!(task->group_leader->ptrace & PT_TRACE_EXIT))
-                       return OOM_SCAN_ABORT;
-       }
+       if (task_will_free_mem(task) && !force_kill)
+               return OOM_SCAN_ABORT;
+
        return OOM_SCAN_OK;
 }