All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kay Sievers <kay.sievers-tD+1rO4QERM@public.gmane.org>
To: Linus Torvalds
	<torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
Cc: Oleg Nesterov <oleg-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	Lennart Poettering
	<mzxreary-uLTowLwuiw4b1SvskN2V4Q@public.gmane.org>,
	akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	roland-/Z5OmTQCD9xF6kxbq+BtvQ@public.gmane.org
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-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

On Thu, Aug 18, 2011 at 23:23, Linus Torvalds <torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> wrote:
> On Thu, Aug 18, 2011 at 11:11 AM, Kay Sievers <kay.sievers-tD+1rO4QERM@public.gmane.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


--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
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



  parent reply	other threads:[~2011-08-18 21:55 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-16 20:11 + prctl-add-pr_setget_child_reaper-to-allow-simple-process-supervision.patch added to -mm tree akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b
     [not found] ` <201108162011.p7GKBcY0023134-AB4EexQrvXRQetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>
2011-08-17 11:55   ` + prctl-add-pr_setget_child_reaper-to-allow-simple-process-supervision .patch " Oleg Nesterov
2011-08-17 11:55     ` Oleg Nesterov
     [not found]     ` <20110817115543.GA8745-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-17 13:05       ` Oleg Nesterov
2011-08-17 13:05         ` Oleg Nesterov
     [not found]         ` <20110817130531.GA12204-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-17 13:21           ` Kay Sievers
2011-08-17 13:21             ` Kay Sievers
     [not found]             ` <CAPXgP10A4rcQLht--h1d3PJE=oOrm=MSjGXTUSKVF+ssnkt_gw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-08-17 13:37               ` Alan Cox
2011-08-17 13:37                 ` Alan Cox
     [not found]                 ` <20110817143728.7abc955b-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
2011-08-23  0:30                   ` Colin Walters
2011-08-23  0:30                     ` Colin Walters
2011-08-17 14:16               ` Oleg Nesterov
2011-08-17 14:16                 ` Oleg Nesterov
2011-08-17 16:03               ` Denys Vlasenko
2011-08-17 16:03                 ` Denys Vlasenko
2011-08-17 13:13     ` Kay Sievers
     [not found]       ` <CAPXgP12rYf2HmmsJAuJw=nrtcjTRR1WzDhLNM47eKhKA1UTfJQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-08-17 13:45         ` Oleg Nesterov
2011-08-17 13:45           ` Oleg Nesterov
     [not found]           ` <20110817134516.GA14136-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-17 15:45             ` Kay Sievers
2011-08-17 15:45               ` Kay Sievers
     [not found]               ` <CAPXgP101N_GESzpqu=P_H8cLoekMzb2_W2eWyAqATSjm4Gj9CA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-08-17 15:53                 ` Alan Cox
2011-08-17 15:53                   ` Alan Cox
2011-08-17 16:20                 ` Oleg Nesterov
2011-08-17 16:20                   ` Oleg Nesterov
     [not found]                   ` <20110817162041.GA21406-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-17 16:47                     ` Kay Sievers
2011-08-17 16:47                       ` Kay Sievers
     [not found]                       ` <CAPXgP13Dn2c-OnYg-Cty5r4JbqeH_zYPtXDj5GAfK1btoKYmDg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-08-17 18:57                         ` Oleg Nesterov
2011-08-17 18:57                           ` Oleg Nesterov
     [not found]                           ` <20110817185709.GA27663-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-17 20:56                             ` Kay Sievers
2011-08-17 20:56                               ` Kay Sievers
2011-08-18 12:43             ` Lennart Poettering
2011-08-18 12:43               ` Lennart Poettering
     [not found]               ` <20110818124353.GA2839-kS5D54t9nk0aINubkmmoJbNAH6kLmebB@public.gmane.org>
2011-08-18 14:25                 ` Oleg Nesterov
2011-08-18 14:25                   ` Oleg Nesterov
2011-08-18 18:11                   ` Kay Sievers
2011-08-18 18:48                     ` Oleg Nesterov
2011-08-18 18:48                       ` Oleg Nesterov
     [not found]                       ` <20110818184857.GA12094-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-19  1:31                         ` Kay Sievers
2011-08-19  1:31                           ` Kay Sievers
2011-08-19 12:25                           ` Oleg Nesterov
2011-08-19 12:25                             ` Oleg Nesterov
     [not found]                             ` <20110819122503.GA8411-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-19 12:44                               ` Kay Sievers
2011-08-19 12:44                                 ` Kay Sievers
     [not found]                                 ` <CAPXgP11KC2fTWBVYo6CBXe924YAyTGhx9=UTBDf4cP5Acuo0NA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-08-19 13:13                                   ` Oleg Nesterov
2011-08-19 13:13                                     ` Oleg Nesterov
2011-08-19 14:20                                     ` Kay Sievers
2011-08-19 14:58                                       ` Oleg Nesterov
2011-08-19 14:58                                         ` Oleg Nesterov
     [not found]                                         ` <20110819145815.GA15420-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-20 15:33                                           ` 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 11:14                                                 ` Oleg Nesterov
     [not found]                                                 ` <20110822111402.GA13248-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-22 23:48                                                   ` Kay Sievers
2011-08-22 23:48                                                     ` Kay Sievers
2011-08-18 21:23                     ` Linus Torvalds
2011-08-18 21:23                       ` Linus Torvalds
     [not found]                       ` <CA+55aFxGDbNOhNQJe_LpUMcJCGcW8qFFWzC9H0_KW26Xzb0cXw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-08-18 21:55                         ` Kay Sievers [this message]
2011-08-18 21:55                           ` Kay Sievers
2011-08-18 22:22                           ` Linus Torvalds
2011-08-18 22:22                             ` Linus Torvalds
     [not found]                             ` <CA+55aFyFnMRMuWSSpytwvpk9u5YysMRfTRELyhGX9grWbGyi6Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-08-19  0:48                               ` Kay Sievers
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-td+1ro4qerm@public.gmane.org \
    --cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mzxreary-uLTowLwuiw4b1SvskN2V4Q@public.gmane.org \
    --cc=oleg-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=roland-/Z5OmTQCD9xF6kxbq+BtvQ@public.gmane.org \
    --cc=torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.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 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.