lkml.org 
[lkml]   [2011]   [Mar]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[RFC PATCHSET] ptrace,signal: Fix notifications to the real parent while ptraced
    Date
    Hello,

    This patchset implements "P2. Fix notifications to the real parent" of
    the ptrace job control improvements proposal[1].

    As the whole job control / ptrace logic is quite delicate, I tried to
    be very granual with changes and add plenty of explanations for
    subtleties.

    This patchset contains the following eight patches.

    0001-job-control-Don-t-set-group_stop-exit_code-if-re-ent.patch
    0002-job-control-Small-reorganization-of-wait_consider_ta.patch
    0003-job-control-Fix-ptracer-wait-2-hang-and-explain-nota.patch
    0004-job-control-Allow-access-to-job-control-events-throu.patch
    0005-job-control-Add-for_ptrace-to-do_notify_parent_cldst.patch
    0006-job-control-Job-control-stop-notifications-should-al.patch
    0007-job-control-Notify-the-real-parent-of-job-control-ev.patch
    0008-job-control-Don-t-send-duplicate-job-control-stop-no.patch

    0001-0003 fix subtle issues and prepare for wait(2) related changes.
    I don't think any of this needs to be backported. 0004 make the job
    control stopped/continued states visible to the real parent regardless
    of ptrace.

    0005-0006 prepare for notification related changes. 0007-0008 enable
    proper job control notifications to the real parent regardless of
    ptrace.

    This patchset introduces behavior changes; however, all the changes
    are visible only to the real parent. As basically everything job
    control related was broken while ptraced, I don't think these changes
    need to be conditionalized (ie. enabled only when explicitly told so).
    Doing so is likely to only increase confusion with few benefits.

    After this patchset, I can ^Z a strace(1) attached command and get a
    shell prompt. The interaction of course is not perfect yet because
    strace(1) currently unconditionally overrides job control stop, but
    it's a progress. For strace(1) itself, nothing really changes.

    This patchset is based on 2.6.38-rc7 (212e3499b2) + "group stop /
    ptrace updates, take#2" patchset[2] which implements P1. The git
    branch for the P1 patchset has been regenerated with Oleg's Acked-by's
    added and available in ptrace-review-P1 branch.

    This patchset is available in the following git branch.

    git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git ptrace-review-P2

    HEAD is fbbe61c532ba23d2d00bff7c2b354e0522ae4afc. git.korg takes some
    time to sync so if it shows older commit, please try again after a
    while. diffstat follows.

    kernel/exit.c | 83 +++++++++++++++++++++++++++++++---------
    kernel/signal.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++------
    2 files changed, 170 insertions(+), 29 deletions(-)
    Thanks.

    --
    tejun

    [1] http://thread.gmane.org/gmane.linux.kernel/1107045
    [2] http://thread.gmane.org/gmane.linux.kernel/1109224


    \
     
     \ /
      Last update: 2011-03-08 21:01    [from the cache]
    ©2003-2014 Jasper Spaans. hosted at Digital Ocean