Right - let me rephrase. Tasks which are either:
- untraced, normal
- traced, but traced _by their parent_
are on the sibling/children list.
Tasks which are traced by some not-my-parent process go on the
ptrace_children list. So I think we agree.
> > tsk->ptrace_children: tsk's children, which are traced by some other
> > process. They have p->real_parent == tsk and p->parent != tsk.
> > Chained in p->ptrace_list.
>
> yes. This means that the sum of the two lists gives the real, total set of
> children.
>
> this splitup of the lists makes it possible for the debugger to do a wait4
> that will get events from the debugged task, and for the debugged task to
> also be available to the real parent.
Great. I'm not exactly sure on how this works right now: sys_wait4
only iterates over ->children, with the exception of the special code
in TASK_ZOMBIE. I'm not quite sure when events from a traced process
get to the normal parent of that process, or when they're supposed to.
> is this really what we want?
>
> (note that the meaning of the lists is not necesserily cleanly expressed
> via the code, all deviations are most likely bugs.)
-- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/