From: ebiederm@xmission.com (Eric W. Biederman)
To: Oleg Nesterov <oleg@redhat.com>
Cc: Jim Newsome <jnewsome@torproject.org>,
Andrew Morton <akpm@linux-foundation.org>,
Christian Brauner <christian@brauner.io>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3] do_wait: make PIDTYPE_PID case O(1) instead of O(n)
Date: Thu, 11 Mar 2021 10:37:27 -0600 [thread overview]
Message-ID: <m1sg51k5o8.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <20210311150820.GA15552@redhat.com> (Oleg Nesterov's message of "Thu, 11 Mar 2021 16:08:21 +0100")
Oleg Nesterov <oleg@redhat.com> writes:
> On 03/10, Eric W. Biederman wrote:
>>
>> Jim Newsome <jnewsome@torproject.org> writes:
>>
>> > +static int do_wait_pid(struct wait_opts *wo)
>> > +{
>> > + struct task_struct *target = pid_task(wo->wo_pid, PIDTYPE_PID);
>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>> This is subtle change in behavior.
>>
>> Today on the task->children list we only place thread group leaders.
>
> Aaah, yes, thanks Eric!
>
>> So the code either needs a thread_group_leader filter on target before
>> the ptrace=0 case or we need to use "pid_task(wo->wo_pid, PIDTYPE_TGID)"
>> and "pid_task(wo->wo_pid, PIDTYPE_PID)" for the "ptrace=1" case.
>
> Agreed,
>
>> I would like to make thread_group_leaders go away
>
> Hmm, why?
Mostly because we have class of very nasty bugs to fix because code
thinks one thread is special.
There has been and I think still is code that mishandles zombie thread
group leaders.
Particularly nasty are zombie thread group leaders after userspace has
called setresuid in a way that changes signal permissions.
Eric
prev parent reply other threads:[~2021-03-11 16:38 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-09 20:39 [PATCH v3] do_wait: make PIDTYPE_PID case O(1) instead of O(n) Jim Newsome
2021-03-10 17:27 ` Oleg Nesterov
2021-03-10 22:40 ` Eric W. Biederman
2021-03-11 0:14 ` Jim Newsome
2021-03-11 15:15 ` Oleg Nesterov
2021-03-11 16:26 ` Jim Newsome
2021-03-11 16:30 ` Eric W. Biederman
2021-03-11 15:08 ` Oleg Nesterov
2021-03-11 16:37 ` Eric W. Biederman [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m1sg51k5o8.fsf@fess.ebiederm.org \
--to=ebiederm@xmission.com \
--cc=akpm@linux-foundation.org \
--cc=christian@brauner.io \
--cc=jnewsome@torproject.org \
--cc=linux-kernel@vger.kernel.org \
--cc=oleg@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.