lkml.org 
[lkml]   [2010]   [Jan]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: s390 && user_enable_single_step() (Was: odd utrace testing results on s390x)
    On 01/06, Roland McGrath wrote:
    >
    > > Oh, I am not sure. But I don't understand TIF_SINGLE_STEP on s390,
    > > absolutely.
    > >
    > > For example, why do_signal() sets TIF_SINGLE_STEP? Why can't we do
    >
    > I think we could. That would be more consistent with other machines. On
    > s390, once we set TIF_SINGLE_STEP, we are going to post a SIGTRAP
    > eventually before going to user mode. But then tracehook_signal_handler()
    > also gets stepping=1 and the expected meaning of this is that the arch code
    > is not itself simulating a single-step for the handler setup. So the
    > tracehook (i.e. ptrace/utrace) code does what it does for "need a fake
    > single-step".
    >
    > In ptrace (including utrace-based ptrace), this winds up with sending a
    > SIGTRAP. So when we finally do get out of do_signal and TIF_SINGLE_STEP
    > causes a second SIGTRAP, it's already pending and the second one makes no
    > difference.

    Confused again, perhaps I just misunderstood what you mean...

    Without utrace, tracehook_signal_handler() doesn't send SIGTRAP, it
    merely does ptrace_notify(SIGTRAP), this means that

    > But for the general case of utrace, we'll have the UTRACE_SIGNAL_HANDLER
    > report, followed by a SIGTRAP that appears to be an authentic single-step
    > trap, but takes place on the same instruction. If the resumption after the
    > UTRACE_SIGNAL_HANDLER report didn't use stepping, then this is an entirely
    > unexpected extra SIGTRAP.

    even without utrace we can have unexpected SIGTRAP.

    Oleg.



    \
     
     \ /
      Last update: 2010-01-07 19:13    [W:0.032 / U:0.048 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site