From: Ingo Molnar <mingo@kernel.org>
To: Tejun Heo <htejun@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH] sched: Revert 14a40ffccd61 ("sched: replace PF_THREAD_BOUND with PF_NO_SETAFFINITY")
Date: Mon, 2 Dec 2013 18:28:37 +0100 [thread overview]
Message-ID: <20131202172837.GB29537@gmail.com> (raw)
In-Reply-To: <20131202165006.GA19064@htj.dyndns.org>
* Tejun Heo <htejun@gmail.com> wrote:
> Hello, guys.
>
> On Mon, Dec 02, 2013 at 04:37:46PM +0100, Ingo Molnar wrote:
> > > - We should strive to never consciously place artificial limitations on
> > > kernel functionality; our main reason to place limitations should be
> > > correctness.
>
> It is a correctness issue tho. We'd be promising, say, NUMA affinity
> and then possibly give out workers which aren't affine to the NUMA
> node. [...]
No, NUMA is a performance issue in this specific case, not a
correctness issue. 'Correctness' for configuration details mostly
means 'stuff does not crash'.
We try to give good, sensible, well performing defaults out of box,
but otherwise we try to let root mis-configure (or improve!) their
systems rather widely.
This is really fundamental: our affinity APIs are generic, and they
should only ever be limited in such a drastic fashion in the very
strict 'stuff crashes' case, and that is properly expressed via the
PF_THREAD_BOUND flag.
(Your other arguments fail for similar reasons.)
> This is the same problem with bound workers. Userland could be
> actively breaking configured affinities of kworkers which may be
> depended upon by its users and there's no way for userland to tell
> which kworker is gonna serve which workqueue - there's no fixed
> relationship between them, so it's not like userland can, say,
> modify affinities on crypto kworkers in isolation. Both userland
> and kernel wouldn't have much idea of the impact of such fiddling.
That's only because 'private affinity' attributes detached scheduler
affinity handling snuck into the workqueue code. It's bad design and
it needs to be fixed - and the worst aspect is undone via this revert.
> > Peter's workqueue.c fixlet above to workqueue.c to this patch plus
> > your Acked-by, so that the two changes are together?
>
> The above would trigger the added warning if a new kworker is
> created for a per-cpu workqueue while the cpu is down, which may
> happen, so the patch itself is somewhat broken.
I'll wait for a new submission from Peter.
> I don't think this is the right path to accomodate HPC/RT use cases.
> Let's please implement something proper if keeping unbound kworkers
> off certain cpus is necessary.
We already have APIs to manage affinities, in the scheduler.
Privatizing this function into workqueue.c is limiting and actively
wrong.
Such APIs should be done properly, by extending existing scheduler
APIs if needed, not by turning off the old APIs via a crude flag and
creating some private, per subsystem implementation ...
Thanks,
Ingo
next prev parent reply other threads:[~2013-12-02 17:28 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-02 15:29 [PATCH] sched: Revert 14a40ffccd61 ("sched: replace PF_THREAD_BOUND with PF_NO_SETAFFINITY") Peter Zijlstra
2013-12-02 15:37 ` Ingo Molnar
2013-12-02 16:50 ` Tejun Heo
2013-12-02 17:28 ` Ingo Molnar [this message]
2013-12-02 19:17 ` Tejun Heo
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=20131202172837.GB29537@gmail.com \
--to=mingo@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=htejun@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--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