Re: [RFC PATCH] kernel/fork: fix CLONE_CHILD_CLEARTID regression in nscd

From: Michal Hocko
Date: Fri Aug 19 2016 - 09:25:48 EST


On Fri 12-08-16 11:41:13, Michal Hocko wrote:
> On Wed 03-08-16 23:08:04, Oleg Nesterov wrote:
> > sorry for delay, I am travelling till the end of the week.
>
> Same here...
>
> > On 08/01, Michal Hocko wrote:
[...]
> > > We should also check for vfork because
> > > this is killable since d68b46fe16ad ("vfork: make it killable").
> >
> > Hmm, why? Can't understand... In any case this check doesn't look right, the
> > comment says "a killed vfork parent" while tsk->vfork_done != NULL means it
> > is a vforked child.
> >
> > So if we want this change, why we can't simply do
> >
> > - if (!(tsk->flags & PF_SIGNALED) &&
> > + if (!(tsk->signal->flags & SIGNAL_GROUP_COREDUMP) &&
> >
> > ?
>
> This is what I had initially. But then the comment above the check made
> me worried that the parent of vforked child might get confused if the
> flag is cleared. I might have completely misunderstood the point of the
> comment though. So if you believe that vfork_done check is incorrect I
> can drop it. It shouldn't have any effect on the nscd usecase AFAIU.

So should I drop the vfork check and repost or we do not care about this
"regression" and declare nscd broken because it relies on a behavior
which is not in fact guaranteed by the kernel?
--
Michal Hocko
SUSE Labs