From: Kay Sievers <kay.sievers@vrfy.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Oleg Nesterov <oleg@redhat.com>,
Lennart Poettering <mzxreary@0pointer.de>,
akpm@linux-foundation.org, linux-kernel@vger.kernel.org,
linux-man@vger.kernel.org, roland@hack.frob.com
Subject: Re: + prctl-add-pr_setget_child_reaper-to-allow-simple-process-supervision .patch added to -mm tree
Date: Thu, 18 Aug 2011 23:55:15 +0200 [thread overview]
Message-ID: <1313704516.15082.5.camel@mop> (raw)
In-Reply-To: <CA+55aFxGDbNOhNQJe_LpUMcJCGcW8qFFWzC9H0_KW26Xzb0cXw@mail.gmail.com>
On Thu, Aug 18, 2011 at 23:23, Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Thu, Aug 18, 2011 at 11:11 AM, Kay Sievers <kay.sievers@vrfy.org> wrote:
>>
>> How about this? It:
>> - uses task->real_parent to walk up the chain of parents.
>
> If I read this right, it does that for all the normal cases too.
> Disgusting. Slowing down the *usual* UNIX case for your new made-up
> case that nobody actually uses is not acceptable.
Re-parenting is not a *usual* operation, usual exit()s have a parent and
do not trigger that code. And in most cases of double-forking it is a
one step, which is almost the same than it was before. Only if we skip
multiple parents it will get the check, which is cheap anyway.
> So NAK. We're not slowing down normal code for some new feature that
> realistically will never be used by any normal applications.
It will be used for all new service managers. UNIX is a pain if you want
to watch your children regarding double-forking, if you are not init.
And it will clean up the mess the desktop stuff is putting in 'ps afx'.
Here is the before/after output:
253 ? Ss 0:00 /bin/dbus-daemon --system --address=systemd: --nofork --systemd-activation
294 ? Sl 0:00 /usr/libexec/polkit-1/polkitd
328 ? S 0:00 /usr/sbin/modem-manager
608 ? Sl 0:00 /usr/libexec/colord
658 ? Sl 0:00 /usr/libexec/upowerd
819 ? Sl 0:00 /usr/libexec/imsettings-daemon
916 ? Sl 0:00 /usr/libexec/udisks-daemon
917 ? S 0:00 \_ udisks-daemon: not polling any devices
294 ? Ss 0:00 /bin/dbus-daemon --system --address=systemd: --nofork --systemd-activation
426 ? Sl 0:00 \_ /usr/libexec/polkit-1/polkitd
449 ? S 0:00 \_ /usr/sbin/modem-manager
635 ? Sl 0:00 \_ /usr/libexec/colord
705 ? Sl 0:00 \_ /usr/libexec/upowerd
959 ? Sl 0:00 \_ /usr/libexec/udisks-daemon
960 ? S 0:00 | \_ udisks-daemon: not polling any devices
977 ? Sl 0:00 \_ /usr/libexec/packagekitd
It's a pretty nice way for an admin too see what's going on on that box,
even with good old 'ps'.
It will also dramatically simplify the handling of started services from
a service manager which double-fork for only historic reasons and make
proper service supervision a nightmare if you are not PID 1.
Upstart ptraces all started services to accomplish something similar. I
doubt we want to go that road, but if you prefer ... :)
If you want, we can make the forked processes inherit a flag if the
'subreaper' should be looked up at all. Then we have almost zero
overhead if the feature isn't used. You think that's needed?
Thanks,
Kay
next prev parent reply other threads:[~2011-08-18 21:55 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <201108162011.p7GKBcY0023134@imap1.linux-foundation.org>
2011-08-17 11:55 ` + prctl-add-pr_setget_child_reaper-to-allow-simple-process-supervision .patch added to -mm tree Oleg Nesterov
2011-08-17 13:05 ` Oleg Nesterov
2011-08-17 13:21 ` Kay Sievers
2011-08-17 13:37 ` Alan Cox
2011-08-23 0:30 ` Colin Walters
2011-08-17 14:16 ` Oleg Nesterov
2011-08-17 16:03 ` Denys Vlasenko
2011-08-17 13:13 ` Kay Sievers
2011-08-17 13:45 ` Oleg Nesterov
2011-08-17 15:45 ` Kay Sievers
2011-08-17 15:53 ` Alan Cox
2011-08-17 16:20 ` Oleg Nesterov
2011-08-17 16:47 ` Kay Sievers
2011-08-17 18:57 ` Oleg Nesterov
2011-08-17 20:56 ` Kay Sievers
2011-08-18 12:43 ` Lennart Poettering
2011-08-18 14:25 ` Oleg Nesterov
2011-08-18 18:11 ` Kay Sievers
2011-08-18 18:48 ` Oleg Nesterov
2011-08-19 1:31 ` Kay Sievers
2011-08-19 12:25 ` Oleg Nesterov
2011-08-19 12:44 ` Kay Sievers
2011-08-19 13:13 ` Oleg Nesterov
2011-08-19 14:20 ` Kay Sievers
2011-08-19 14:58 ` Oleg Nesterov
2011-08-20 15:33 ` Oleg Nesterov
2011-08-21 18:33 ` Kay Sievers
2011-08-22 11:14 ` Oleg Nesterov
2011-08-22 23:48 ` Kay Sievers
2011-08-18 21:23 ` Linus Torvalds
2011-08-18 21:55 ` Kay Sievers [this message]
2011-08-18 22:22 ` Linus Torvalds
2011-08-19 0:48 ` Kay Sievers
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=1313704516.15082.5.camel@mop \
--to=kay.sievers@vrfy.org \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-man@vger.kernel.org \
--cc=mzxreary@0pointer.de \
--cc=oleg@redhat.com \
--cc=roland@hack.frob.com \
--cc=torvalds@linux-foundation.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox