Or. We can change wait_consider_task() to not clear ->notask_error if WXXX and the child is PF_WAIT_PID. This way you can "safely" use wait() without WNOHANG, it won't block if all the children which can report an even are PF_WAIT_PID. But I do not understand your use-cases, I have no idea if this can help or not. Just I think the more discussion is always better when we are going to add the new API. On 07/25, Oleg Nesterov wrote: > > On 07/25, Christian Brauner wrote: > > > > On Thu, Jul 25, 2019 at 12:35:44PM +0200, Oleg Nesterov wrote: > > > > > > I have to admit this feature looks a bit exotic to me... > > > > It might look like it from the kernels perspective but from the feedback > > on this when presenting on this userspace has real usecases for this. > > OK... > > but then perhaps we can make PF_WAIT_PID more flexible. > > Say, we can add the new WXXX wait option and change eligible_child() > > if ((p->flags & PF_WAIT_PID) && (wo->options & WXXX)) > return 0; > > this way the parent can tell waitid() whether the PF_WAIT_PID tasks should > be filtered or not. > > And if we do this we can even add PR_SET_WAIT_PID/PR_CLR_WAIT_PID instead > of the new CLONE_ flag. > > Oleg.