Re: [PATCH 04/16] ptrace: kill tracehook_notify_jctl()

From: Tejun Heo
Date: Tue Dec 21 2010 - 12:00:26 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/