On 07/22, Roland McGrath wrote: > > > I still think EXIT_DEAD check must die ;) > > In get_utrace_lock, you mean? Do you mean it's superfluous because we can > rely on utrace_reap having cleared engine->ops before it matters to us?
Yes. Perhaps I missed something, but this check buys nothing. First of all this check is racy without tasklist. Bit it is also unneeded, I think. > > Or. Actually, when I started read utrace.c I was surprised there is > > no "task_struct *tracee" in "struct utrace_engine". Perhaps engine > > itself should ping task_struct ? And engine->tracee can be very handy. > > I don't think a detached struct utrace_engine should pin any task_struct. > That just makes utrace_engine_{get,put} a proxy for {get,put}_task_struct. Yes, > And if it doesn't, then it's not much different from what we have now, is > it? OK, agreed. Perhaps engine->tracee still makes sense even if engine doesn't pin task_struct, utrace_control/barrier/set_events do not need "target" argument in this case. And this means it would a bit be easier to use them. And we can kill _pid() helpers. But this is another story. Oleg.