Re: [PATCH 4/5] pidfd: add CLONE_WAIT_PID

From: Oleg Nesterov
Date: Thu Jul 25 2019 - 14:05:48 EST


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.