From: Frederic Weisbecker <fweisbec@gmail.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
Chris Metcalf <cmetcalf@mellanox.com>,
Thomas Gleixner <tglx@linutronix.de>,
Luiz Capitulino <lcapitulino@redhat.com>,
Christoph Lameter <cl@linux.com>,
"Paul E . McKenney" <paulmck@linux.vnet.ibm.com>,
Ingo Molnar <mingo@kernel.org>, Mike Galbraith <efault@gmx.de>,
Rik van Riel <riel@redhat.com>, Wanpeng Li <kernellwp@gmail.com>
Subject: Re: [RFC PATCH 12/12] housekeeping: Reimplement isolcpus on housekeeping
Date: Mon, 28 Aug 2017 19:33:19 +0200 [thread overview]
Message-ID: <20170828173315.GA3631@lerouge> (raw)
In-Reply-To: <20170828162416.nmdfvutqaki4sahx@hirez.programming.kicks-ass.net>
On Mon, Aug 28, 2017 at 06:24:16PM +0200, Peter Zijlstra wrote:
> On Mon, Aug 28, 2017 at 05:27:15PM +0200, Frederic Weisbecker wrote:
> > On Mon, Aug 28, 2017 at 03:31:16PM +0200, Peter Zijlstra wrote:
>
> > > I'm fairly sure that was very intentional. If you want to isolate stuff
> > > you don't want load-balancing.
> >
> > Yes I guess that was intentional. In fact having NULL domains is convenient
> > as it also isolates from many things: tasks, workqueues, timers.
>
> Huh, what? That's entirely unrelated to the NULL domain.
>
> The reason people like isolcpus= is that is ensures _nothing_ runs on
> those CPUs before you explicitly place something there.
>
> _That_ is what ensures there are no timers etc.. placed on those CPUs.
Sure that's what I meant.
>
> Once you run something on that CPU, it stays there.
>
> It is also what I dislike about isolcpus, its a boot time feature, if
> you want to reconfigure your system you need a reboot.
Indeed.
>
> > Although for example I guess (IIUC) that if you create an unbound
> > timer on a NULL domain, it will be stuck on it for ever as we can't
> > walk any hierarchy from the current CPU domain.
>
> Not sure what you're on about. Timers have their own hierarchy.
Check out get_nohz_timer_target() which relies on scheduler hierarchies to
look up a CPU to enqueue an unpinned timer on.
>
> > I'm not sure how much that can apply to unbound workqueues
> > as well.
>
> Well, unbound workqueued will not immediately end up on those CPUs,
> since they'll have an affinity exlusive of those CPUs per construction.
Ah that's right.
> But IIRC there's an affinity setting for workqueues where you could
> force it on if you wanted to.
Yep: /sys/devices/virtual/workqueue/cpumask
>
> > But the thing is with NULL domains: things can not migrate in and neither
> > can them migrate out, which is not exactly what CPU isolation wants.
>
> No, its exactly what they want. You get what you put in and nothing
> more. If you want something else, use cpusets.
That's still a subtle behaviour that involves knowledge of some scheduler
core details. I wish we hadn't exposed such a low level scheduler control
as a general purpose kernel parameter.
Anyway at least that confirms one worry we had: kernel parameters are kernel
ABI that we can't break.
>
> > > Now, I completely hate the isolcpus feature and wish is a speedy death,
> > > but replacing it with something sensible is difficult because cgroups
> > > :-(
> >
> > Ah, that would break cgroup somehow?
>
> Well, ideally something like this would start the system with all the
> 'crap' threads in !root cgroup. But that means cgroupfs needs to be
> populated with at least two directories on boot. And current cgroup
> cruft doesn't expect that.
Ah I see.
Thanks!
next prev parent reply other threads:[~2017-08-28 17:33 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-23 1:50 [RFC 00/12] Introduce housekeeping subsystem v2 Frederic Weisbecker
2017-08-23 1:51 ` [RFC PATCH 01/12] housekeeping: Move housekeeping related code to its own file Frederic Weisbecker
2017-08-31 20:16 ` Rik van Riel
2017-08-31 22:58 ` Frederic Weisbecker
2017-08-23 1:51 ` [RFC PATCH 02/12] watchdog: Use housekeeping_cpumask() instead of ad-hoc version Frederic Weisbecker
2017-08-23 1:51 ` [RFC PATCH 03/12] housekeeping: Provide a dynamic off-case to housekeeping_any_cpu() Frederic Weisbecker
2017-08-23 1:51 ` [RFC PATCH 04/12] housekeeping: Make housekeeping cpumask private Frederic Weisbecker
2017-08-23 1:51 ` [RFC PATCH 05/12] housekeeping: Use its own static key Frederic Weisbecker
2017-08-23 1:51 ` [RFC PATCH 06/12] housekeeping: Rename is_housekeeping_cpu to housekeeping_cpu Frederic Weisbecker
2017-08-23 1:51 ` [RFC PATCH 07/12] housekeeping: Move it under own config, independant from NO_HZ Frederic Weisbecker
2017-08-23 1:51 ` [RFC PATCH 08/12] housekeeping: Introduce housekeeping flags Frederic Weisbecker
2017-08-23 1:51 ` [RFC PATCH 09/12] workqueue: Affine unbound workqueues to housekeeping cpumask Frederic Weisbecker
2017-08-23 1:51 ` [RFC PATCH 10/12] housekeeping: Affine unbound kthreads Frederic Weisbecker
2017-08-23 1:51 ` [RFC PATCH 11/12] housekeeping: Handle nohz_full= parameter Frederic Weisbecker
2017-08-23 1:51 ` [RFC PATCH 12/12] housekeeping: Reimplement isolcpus on housekeeping Frederic Weisbecker
2017-08-23 14:55 ` Christopher Lameter
2017-08-24 13:19 ` Frederic Weisbecker
2017-08-28 10:10 ` Peter Zijlstra
2017-08-28 15:38 ` Christopher Lameter
2017-08-28 10:09 ` Peter Zijlstra
2017-08-28 13:23 ` Frederic Weisbecker
2017-08-28 13:31 ` Peter Zijlstra
2017-08-28 15:27 ` Frederic Weisbecker
2017-08-28 16:24 ` Peter Zijlstra
2017-08-28 16:53 ` Christopher Lameter
2017-08-28 17:33 ` Frederic Weisbecker [this message]
2017-08-31 18:53 ` Thomas Gleixner
2017-08-31 23:00 ` Frederic Weisbecker
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=20170828173315.GA3631@lerouge \
--to=fweisbec@gmail.com \
--cc=cl@linux.com \
--cc=cmetcalf@mellanox.com \
--cc=efault@gmx.de \
--cc=kernellwp@gmail.com \
--cc=lcapitulino@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=riel@redhat.com \
--cc=tglx@linutronix.de \
/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.