linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Tejun Heo <htejun@gmail.com>
Cc: Oleg Nesterov <oleg@redhat.com>,
	zhang.yi20@zte.com.cn, lkml <linux-kernel@vger.kernel.org>,
	Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>,
	Ingo Molnar <mingo@redhat.com>
Subject: Re: [PATCH]: exec: avoid propagating PF_NO_SETAFFINITY into userspace child
Date: Thu, 28 Nov 2013 16:17:04 +0100	[thread overview]
Message-ID: <20131128151704.GC10022@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <20131128150722.GJ3925@htj.dyndns.org>

On Thu, Nov 28, 2013 at 10:07:22AM -0500, Tejun Heo wrote:
> Changing attributes on the parent doesn't get propagated to its
> children, so I don't think that'd be a terribly good interface for
> workqueue. 

The idea was that if there's a single parent, its easy to find all the
children using the task hierarchy. So flip the parent to the new
attributes, then iterate the children and flip them.

That's a single pass race-free approach. New children will already have
the desired attributes, dead children we don't care about.

So there's three useful parts to having a single parent task:

 - its a task so you can change the entire task attribute set; current
   and future.

 - new children will automatically get the desired attributes.

 - all children are easily identified by virtual of being children of
   said parent process.

Currently its hard to find all usermode helpers or all workqueue tasks.

I know people who are poking at /proc/$pid/stat to inspect
task_struct::flags while gleaning the PF_ flags from sched.h and run
this in a polling loop to catch new entries.

Surely that's a bad idea ;-)

> You'll end up with workers with mixed attributes and
> regardless, workqueue management logic needs to know which workqueue
> has which set of attributes to decide how the workers are shared.
> Overrloading all that over task mgmt interface would be horrible.

Well, mixed attributes is you own responsibility. I'm all for letting
people shoot themselves in the foot as long we don't crash.

The huge disadvantage to creating special interfaces is that you can
only capture a small part of the task attributes; and worse, you create
a special limited interface for a special few tasks.



  reply	other threads:[~2013-11-28 15:17 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-14  1:51 kmod: avoid propagating PF_NO_SETAFFINITY into userspace child zhang.yi20
2013-11-14  5:23 ` Tejun Heo
2013-11-14 11:40   ` Oleg Nesterov
2013-11-14 11:55     ` [PATCH 0/1]: (Was: kmod: avoid propagating PF_NO_SETAFFINITY into userspace child) Oleg Nesterov
2013-11-14 11:56       ` [PATCH 1/1] workqueue: swap set_cpus_allowed_ptr() and PF_NO_SETAFFINITY Oleg Nesterov
2013-11-22 23:13         ` Tejun Heo
     [not found]           ` <OF36E72FA9.51146BE3-ON48257C2E.0008BC6D-48257C2E.0008FF9C@zte.com.cn>
2013-11-25 12:14             ` 答复: " Oleg Nesterov
2013-11-26  2:10               ` [PATCH]: exec: avoid propagating PF_NO_SETAFFINITY into userspace child zhang.yi20
2013-11-26 18:04                 ` Oleg Nesterov
2013-11-27  2:07                   ` zhang.yi20
2013-11-27 13:20                     ` Oleg Nesterov
2013-11-27 18:31                     ` Tejun Heo
2013-11-28  9:13                       ` Peter Zijlstra
2013-11-28 11:45                         ` Oleg Nesterov
2013-11-28 12:17                           ` Peter Zijlstra
2013-11-28 13:31                             ` Oleg Nesterov
2013-11-28 13:39                               ` Peter Zijlstra
2013-11-28 14:13                                 ` Tejun Heo
2013-11-28 14:31                                   ` Peter Zijlstra
2013-11-28 14:38                                     ` Tejun Heo
2013-11-28 14:47                                       ` Peter Zijlstra
2013-11-28 14:51                                         ` Tejun Heo
2013-11-28 14:55                                       ` Peter Zijlstra
2013-11-28 14:57                                         ` Tejun Heo
2013-11-28 14:59                                           ` Peter Zijlstra
2013-11-28 15:07                                             ` Tejun Heo
2013-11-28 15:17                                               ` Peter Zijlstra [this message]
2013-11-28 15:39                                                 ` Tejun Heo
2013-11-28 16:33                                                   ` Peter Zijlstra
2013-11-29 14:33                                                     ` Tejun Heo
2013-11-28 15:47                                                 ` Oleg Nesterov
2013-11-28 16:07                                                   ` Oleg Nesterov
2013-11-28 14:43                                     ` Peter Zijlstra
2013-11-28 14:53                                       ` Tejun Heo
2013-11-28 14:57                                         ` Peter Zijlstra
2013-11-28 15:02                                           ` Tejun Heo
2013-11-28 15:07                                             ` Peter Zijlstra
2013-11-28 15:10                                               ` Tejun Heo
2013-11-28 15:18                                                 ` Peter Zijlstra
2013-11-28 14:38                                   ` Peter Zijlstra
2013-11-28 14:45                                     ` Tejun Heo
2013-11-28 14:53                                       ` Peter Zijlstra
2013-11-28 15:34                                     ` Oleg Nesterov
2013-11-28 15:40                                       ` Peter Zijlstra
2013-11-28 16:20                                         ` Oleg Nesterov
2013-11-28 16:38                                           ` Peter Zijlstra
2013-11-28 18:13                                             ` Oleg Nesterov
2013-11-28 14:23                                 ` Oleg Nesterov
2013-11-28 14:31                                   ` Tejun Heo
2013-11-28 15:00                                     ` Oleg Nesterov
2013-11-28 15:02                                       ` Peter Zijlstra
2013-11-28 19:33                                         ` [PATCH 0/1] usermodehelper: kill ____call_usermodehelper()->set_cpus_allowed_ptr() Oleg Nesterov
2013-11-28 19:33                                           ` [PATCH 1/1] " Oleg Nesterov
2013-11-29 13:44                                             ` Tejun Heo
2013-11-29 16:49                                               ` Oleg Nesterov
2013-12-05 14:21                                             ` Frederic Weisbecker
2013-12-05 14:37                                               ` Oleg Nesterov
2013-12-05 14:39                                                 ` Tejun Heo
2013-12-05 15:30                                                   ` Oleg Nesterov
2013-12-05 19:13                                                     ` Christoph Lameter
2013-12-06 14:53                                                       ` Oleg Nesterov
2013-12-06 15:37                                                         ` Christoph Lameter
2013-12-06 15:56                                                           ` Oleg Nesterov
2013-12-05 16:26                                                   ` Frederic Weisbecker
2013-12-05 14:42                                                 ` Frederic Weisbecker
2013-11-28 13:41                               ` [PATCH]: exec: avoid propagating PF_NO_SETAFFINITY into userspace child Peter Zijlstra
2013-11-28 14:05                                 ` Tejun Heo
2013-11-28 14:34                                 ` Oleg Nesterov
2013-11-29  9:19 zhang.yi20

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=20131128151704.GC10022@twins.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=htejun@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=oleg@redhat.com \
    --cc=penguin-kernel@i-love.sakura.ne.jp \
    --cc=zhang.yi20@zte.com.cn \
    /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;
as well as URLs for NNTP newsgroup(s).