• T
    ptrace: use bit_waitqueue for TRAPPING instead of wait_chldexit · 62c124ff
    Tejun Heo 提交于
    ptracer->signal->wait_chldexit was used to wait for TRAPPING; however,
    ->wait_chldexit was already complicated with waker-side filtering
    without adding TRAPPING wait on top of it.  Also, it unnecessarily
    made TRAPPING clearing depend on the current ptrace relationship - if
    the ptracee is detached, wakeup is lost.
    
    There is no reason to use signal->wait_chldexit here.  We're just
    waiting for JOBCTL_TRAPPING bit to clear and given the relatively
    infrequent use of ptrace, bit_waitqueue can serve it perfectly.
    
    This patch makes JOBCTL_TRAPPING wait use bit_waitqueue instead of
    signal->wait_chldexit.
    
    -v2: Use JOBCTL_*_BIT macros instead of ilog2() as suggested by Linus.
    Signed-off-by: NTejun Heo <tj@kernel.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: NOleg Nesterov <oleg@redhat.com>
    62c124ff
ptrace.c 23.4 KB