All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Lutomirski <luto@amacapital.net>
To: Rob Landley <rob@landley.net>
Cc: linux-kernel@vger.kernel.org,
	Cyrill Gorcunov <gorcunov@gmail.com>,
	Oleg Nesterov <oleg@redhat.com>
Subject: Re: [PATCH] proc: Document that /proc/<pid>/task/<tid>/children really is per-thread
Date: Mon, 1 Jul 2013 10:36:52 -0700	[thread overview]
Message-ID: <CALCETrXcqnJJ3RGVjdepyvm1njr5cUo+p8r3BKL9jmNhneA64g@mail.gmail.com> (raw)
In-Reply-To: <1372697398.5019.1@driftwood>

On Mon, Jul 1, 2013 at 9:49 AM, Rob Landley <rob@landley.net> wrote:
> On 06/26/2013 04:05:01 PM, Andy Lutomirski wrote:
>>
>> I was surprised to discover that a process can have a parent that isn't
>> a thread group leader.  (The usual ppid interfaces hide this, but the
>> children list exposes it.)
>>
>> Signed-off-by: Andy Lutomirski <luto@amacapital.net>
>> Cc: Cyrill Gorcunov <gorcunov@gmail.com>
>> Cc: Oleg Nesterov <oleg@redhat.com>
>> ---
>>  Documentation/filesystems/proc.txt | 6 ++++++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/Documentation/filesystems/proc.txt
>> b/Documentation/filesystems/proc.txt
>> index fd8d0d5..205796a 100644
>> --- a/Documentation/filesystems/proc.txt
>> +++ b/Documentation/filesystems/proc.txt
>> @@ -1623,6 +1623,12 @@ This file provides a fast way to retrieve first
>> level children pids
>>  of a task pointed by <pid>/<tid> pair. The format is a space separated
>>  stream of pids.
>>
>> +This really is a per-thread list.  If a process's parent is a thread,
>> +then that process will appear in that thread's children list.  (This
>> +means that, for any pid, /proc/pid/task/*/children are disjoint lists.)
>> +This may be surprising, as /proc/pid/status's PPid field is parent's
>> +tgid as opposed to the parent's tid.
>
>
> I've read this twice and still don't quite understand what it's saying.
> (Possibly I need more than 3 hours of sleep.)
>
> It sounds like you're saying a thread can fork() and exec() and this makes
> proc look weird, because the ppid pooints to the thread group leader and not
> the thread, but the proc info listing us as a child belongs to the thread?

That is exactly right.  Is it unclear because I wrote it badly, or is
it unclear because it's really weird?

Perhaps I'll add something like:

For example, if thread group 100 has threads 100 (the leader) and 101,
and thread 101 forks and produces a child with tgid 102, then
/proc/100/task/100/children will be empty, /proc/100/task/101/children
will contain 102, and /proc/102/status will show 'Ppid: 100'.

>
> Is this a bug that should be fixed rather than documented? (Showing the
> right ppid for this corner case?)
>

I'm not qualified to say whether it's a bug or even, if it is a bug,
what the preferred behavior would be.

--Andy

      reply	other threads:[~2013-07-01 17:37 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-25 19:51 [PATCH] proc: Expose /proc/<pid>/task/<tid>/children unconditionally Andy Lutomirski
2013-06-25 20:16 ` Cyrill Gorcunov
2013-06-25 20:17   ` Oleg Nesterov
2013-06-25 21:36     ` Andy Lutomirski
2013-06-25 21:52       ` Cyrill Gorcunov
2013-06-25 22:01         ` Andy Lutomirski
2013-06-26  7:21           ` Cyrill Gorcunov
2013-06-26 15:57           ` Oleg Nesterov
2013-06-26 16:14             ` Andy Lutomirski
2013-06-26 21:05             ` [PATCH] proc: Document that /proc/<pid>/task/<tid>/children really is per-thread Andy Lutomirski
2013-06-27  6:21               ` Cyrill Gorcunov
2013-07-01 16:49               ` Rob Landley
2013-07-01 17:36                 ` Andy Lutomirski [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=CALCETrXcqnJJ3RGVjdepyvm1njr5cUo+p8r3BKL9jmNhneA64g@mail.gmail.com \
    --to=luto@amacapital.net \
    --cc=gorcunov@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oleg@redhat.com \
    --cc=rob@landley.net \
    /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.