Re: [PATCH 10/10] ptrace: implement group stop notification forptracer

From: Oleg Nesterov
Date: Mon May 23 2011 - 09:36:09 EST


On 05/20, Tejun Heo wrote:
>
> 1. A process has two threads t1 and t2. t1 is ptraced by p1. Both t1
> and t2 are running.
>
> 2. p1 INTERRUPTs t1. t1 enters TRAP_STOP and p1 notices it.
>
> 3. Something else sends SIGSTOP to t2 which initiates group stop.
>
> 4. As t1 re-traps to notify p1 of group stop, p1 issues PTRACE_CONT.
>
> 5. PTRACE_CONT succeeds right after t1 re-traps for notification and
> t1 resumes execution.

IOW. The root of the problem is that TASK_TRACED no longer means the
tracee is stopped, it can change its state and the "volatile" info
in si_pt_flags reflects this fact.

This makes me nervous ;) Yes, we hide the TRACED->RUNNING->TRACED
transitions, and I have to agree that the proposed API looks consistent
to me. Still, can't we do this differently ? (see another email).

Oleg.

--
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/