• O
    ptrace: give more respect to SIGKILL · 364d3c13
    Oleg Nesterov 提交于
    ptrace_stop() has some complicated checks to prevent the scheduling in the
    TASK_TRACED state with the pending SIGKILL, but these checks are racy, and
    they depend on arch_ptrace_stop_needed().
    
    This patch assumes that the traced task should die asap if it was killed by
    SIGKILL, in that case schedule()->signal_pending_state() has no reason to
    ignore the TASK_WAKEKILL part of TASK_TRACED, and we can kill this nasty
    special case.
    
    Note: do_exit()->ptrace_notify() is special, the killed task can already
    dequeue SIGKILL at this point. Another indication that fatal_signal_pending()
    is not exactly right.
    Signed-off-by: NOleg Nesterov <oleg@tv-sign.ru>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Matthew Wilcox <matthew@wil.cx>
    Cc: Roland McGrath <roland@redhat.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    364d3c13
sched.h 65.4 KB