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/27, Pavel Tikhomirov wrote:
>
> --- a/include/linux/sched.h
> +++ b/include/linux/sched.h
> @@ -1725,6 +1725,8 @@ struct task_struct {
> struct signal_struct *signal;
> struct sighand_struct *sighand;
>
> + struct list_head csr_descendant;
> +

You forgot to remove this part ;)

> --- a/kernel/fork.c
> +++ b/kernel/fork.c
> @@ -1367,9 +1367,6 @@ static int copy_signal(unsigned long clone_flags, struct task_struct *tsk)
> sig->oom_score_adj = current->signal->oom_score_adj;
> sig->oom_score_adj_min = current->signal->oom_score_adj_min;
>
> - sig->has_child_subreaper = current->signal->has_child_subreaper ||
> - current->signal->is_child_subreaper;
> -
> mutex_init(&sig->cred_guard_mutex);
>
> return 0;
> @@ -1800,6 +1797,13 @@ static __latent_entropy struct task_struct *copy_process(
>
> p->signal->leader_pid = pid;
> p->signal->tty = tty_kref_get(current->signal->tty);
> + /*
> + * 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...

Oleg.

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