lkml.org 
[lkml]   [2017]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v2 2/2] prctl: propagate has_child_subreaper flag to every descendant
On 01/30, Pavel Tikhomirov wrote:
>
> On 01/30/2017 03:51 PM, Oleg Nesterov wrote:
> >>+ /*
> >>+ * Inherit has_child_subreaper flag under the same
> >>+ * tasklist_lock with adding child to the process tree
> >>+ * for propagate_has_child_subreaper optimization.
> >>+ */
> >>+ p->signal->has_child_subreaper = current->signal->has_child_subreaper ||
> >>+ current->signal->is_child_subreaper;
> >
> >Ah yes, we need this change too...
> >
> >And perhaps it would be more correct to do
> >
> > p->signal->has_child_subreaper =
> > p->real_parent->signal->has_child_subreaper ||
> > p->real_parent->signal->is_child_subreaper;
> >
> >the current code is not exactly right if CLONE_PARENT...
>
> I'm fine with inheriting 'has' flag from real_parent, because if real_parent
> does not have 'has' flag set but parent has 'has' set, we inherited the flag
> in vain.
>
> But I don't actually think that inheritance from parent not real_parent
> breaks my optimization: if real_parent has the flag, so does the parent.

Not sure I understand... I meant, the usage of p->real_parent instead of "current"
_looks_ more correct and clear, imo.

Say, a is_child_subreaper task does clone(CLONE_PARENT), in this case (with or
without your change) we set p->signal->has_child_subreaper = 1 and this is not
really correct even if we do not really care.

Oleg.

\
 
 \ /
  Last update: 2017-01-30 15:12    [W:0.043 / U:0.212 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site