From: Tejun Heo <htejun@gmail.com>
To: Oleg Nesterov <oleg@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
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 09:31:55 -0500 [thread overview]
Message-ID: <20131128143155.GC3925@htj.dyndns.org> (raw)
In-Reply-To: <20131128142359.GA6420@redhat.com>
Hello,
On Thu, Nov 28, 2013 at 03:23:59PM +0100, Oleg Nesterov wrote:
> Yes, the naming is misleading. But it was always misleading.
> "singlethreaded" meant a single thread, yes, but this just reflected the
> implementation details. What it actually meant is: not bound to any cpu,
> and the works can't race with each other.
Way back when it was actually a singlethread, the naming was kinda
okay. Now it's a deprecated interface. I just didn't finish
convering the existing ones to alloc_ordered_workqueue().
> create_singlethread_workqueue() still has the same semantics due to
> WQ_UNBOUND && max_active == 1. So in this sense (max_active == 1) it
> is still single threaded, just (iiuc, Tejun can correct me) it does
> not guarantee that the kernel thread which actually runs the work will
> be always the same.
So, the thing with create_singlethread_workqueue() is that the
original implementation guaranteed dedicated execution resource, which
means that it requires WQ_RESCUER in the new (well, newer)
implementation. Also, singlethread workqueue used to be used not
because singlethreadedness was necessary but just to avoid creating
all the per-cpu workers, which is no longer necessary and actually is
less efficient. So, converting create_singlethread_workqueue()
instances to the new interface usually involves making the two
determinations.
* Is WQ_RESCUER actually necessary? If not, WQ_RESCUER will be
dropped and the task bearing the name of the workqueue will no
longer exist.
* Is ordered execution necessary? If not, it can be converted to
alloc_workqueue() or just to use system_wq.
khelper is special as its attributes get inherited to its children,
so, yeah, we probably wanna keep that one's cpumask set to all.
Hmmm... I think it's already broken. So, on NUMA machines, unbound
workqueues will be segmented to each NUMA node by default. If khelper
is gonna keep using workqueue, it should set turn on no_numa attribute
explicitly. I'll prep a patch.
Thanks.
--
tejun
next prev parent reply other threads:[~2013-11-28 14:32 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-14 1:51 kmod: " 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
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 [this message]
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=20131128143155.GC3925@htj.dyndns.org \
--to=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=peterz@infradead.org \
--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
all inboxes | Powered by JetHome®