[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190218165620.383905466@infradead.org>
Date: Mon, 18 Feb 2019 17:56:20 +0100
From: Peter Zijlstra <peterz@...radead.org>
To: mingo@...nel.org, tglx@...utronix.de, pjt@...gle.com,
tim.c.chen@...ux.intel.com, torvalds@...ux-foundation.org
Cc: linux-kernel@...r.kernel.org, subhra.mazumdar@...cle.com,
fweisbec@...il.com, keescook@...omium.org, kerrnel@...gle.com,
"Peter Zijlstra (Intel)" <peterz@...radead.org>
Subject: [RFC][PATCH 00/16] sched: Core scheduling
A much 'demanded' feature: core-scheduling :-(
I still hate it with a passion, and that is part of why it took a little
longer than 'promised'.
While this one doesn't have all the 'features' of the previous (never
published) version and isn't L1TF 'complete', I tend to like the structure
better (relatively speaking: I hate it slightly less).
This one is sched class agnostic and therefore, in principle, doesn't horribly
wreck RT (in fact, RT could 'ab'use this by setting 'task->core_cookie = task'
to force-idle siblings).
Now, as hinted by that, there are semi sane reasons for actually having this.
Various hardware features like Intel RDT - Memory Bandwidth Allocation, work
per core (due to SMT fundamentally sharing caches) and therefore grouping
related tasks on a core makes it more reliable.
However; whichever way around you turn this cookie; it is expensive and nasty.
It doesn't help that there are truly bonghit crazy proposals for using this out
there, and I really hope to never see them in code.
These patches are lightly tested and didn't insta explode, but no promises,
they might just set your pets on fire.
'enjoy'
@pjt; I know this isn't quite what we talked about, but this is where I ended
up after I started typing. There's plenty design decisions to question and my
changelogs don't even get close to beginning to cover them all. Feel free to ask.
---
include/linux/sched.h | 9 +-
kernel/Kconfig.preempt | 8 +-
kernel/sched/core.c | 762 ++++++++++++++++++++++++++++++++++++++++++++---
kernel/sched/deadline.c | 99 +++---
kernel/sched/debug.c | 4 +-
kernel/sched/fair.c | 129 +++++---
kernel/sched/idle.c | 42 ++-
kernel/sched/pelt.h | 2 +-
kernel/sched/rt.c | 96 +++---
kernel/sched/sched.h | 183 ++++++++----
kernel/sched/stop_task.c | 35 ++-
kernel/sched/topology.c | 4 +-
kernel/stop_machine.c | 2 +
13 files changed, 1096 insertions(+), 279 deletions(-)
Powered by blists - more mailing lists