Messages in this thread | | | Date | Tue, 21 Dec 2010 18:00:12 +0100 | From | Tejun Heo <> | Subject | Re: [PATCH 04/16] ptrace: kill tracehook_notify_jctl() |
| |
On Mon, Dec 20, 2010 at 03:59:56PM +0100, Oleg Nesterov wrote: > On 12/06, Tejun Heo wrote: > > > > tracehook_notify_jctl() aids in determining whether and what to report > > to the parent when a task is stopped or continued. The function also > > adds an extra requirement that siglock may be released across it, > > which is currently unused and quite difficult to satisfy in > > well-defined manner. > > OK. I agree, tracehook_notify_jctl() looks very unobvious, especially > because it is not really used currently. > > The patch looks correct, except > > > @@ -1853,21 +1850,19 @@ relock: > > if (unlikely(signal->flags & SIGNAL_CLD_MASK)) { > > int why; > > > > - if (signal->flags & SIGNAL_CLD_CONTINUED) > > + if (task_ptrace(current) || > > + (signal->flags & SIGNAL_CLD_CONTINUED)) > > why = CLD_CONTINUED; > > else > > why = CLD_STOPPED; > > Hmm, I can't understand this. > > task_ptrace() should not turn CLD_STOPPED in CLD_CONTINUED? > > Looking ahead, it _seems_ that the next patches keep this logic, > could you explain?
That's the logic from tracehook_notify_jctl() or I think it is incorrectly. Yes, the latter. I got confused the two parameters. I thought tracehook_notify_jctl() always returned CLD_CONTINUED when traced. The @why is @notified and CLD_CONTINUED is @why. :-)
I'll drop the above chunk. Thanks.
-- tejun
| |