Re: config SCHED_CORE

From: Peter Zijlstra
Date: Fri May 21 2021 - 03:53:23 EST


On Thu, May 20, 2021 at 08:06:07PM -0700, Hugh Dickins wrote:
> Hi Peter,
>
> make oldconfig gave me no help at all on how to decide whether to choose
> SCHED_CORE Y or n, beyond it recommending Y. Maybe you'll delete that
> option later, or maybe removing the prompt string would silence it.

Ah, you're quite right. I never seem to have gotten around to actually
writing anything useful there :/ Similarly the documentation for all
this seems to have gone missing too.

Joel, could I ask you to refresh the document to match the current state
of things and repost? I still whole hartedly despise this RST crud, it
makes it so hard to read / modify the files.

( I think the latest version is here:
https://lkml.kernel.org/r/20210324214020.34142-8-joel@xxxxxxxxxxxxxxxxx
)

Anyway, how is something like the below, Joel can add a reference to the
document once it's there.

---
kernel/Kconfig.preempt | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt
index ea1e3331c0ba..3c4566cd20ef 100644
--- a/kernel/Kconfig.preempt
+++ b/kernel/Kconfig.preempt
@@ -104,4 +104,16 @@ config SCHED_CORE
bool "Core Scheduling for SMT"
default y
depends on SCHED_SMT
-
+ help
+ This option enables Core scheduling, a means of coordinated task
+ selection across SMT siblings with the express purpose of creating a
+ Core wide privilidge boundary. When enabled -- see prctl(PR_SCHED_CORE)
+ -- task selection will ensure all SMT siblings will execute a task
+ from the same 'core group', forcing idle when no matching task is found.
+
+ This provides means of mitigation against a number of SMT side-channels;
+ but is, on its own, insufficient to mitigate all known side-channels.
+ Notable: the MDS class of attacks require more.
+
+ Default enabled for anything that has SCHED_SMT, when unused there should
+ be no impact on performance.