commit 233b9d7df0e114c7e7c3674559fb0fc41ada3e8f
Author: Jiri Kosina <
jkosina@suse.cz>
Date: Tue Sep 25 14:38:55 2018 +0200
x86/speculation: Enable cross-hyperthread spectre v2 STIBP mitigation
commit 53c613fe6349994f023245519265999eed75957f upstream.
STIBP is a feature provided by certain Intel ucodes / CPUs. This feature
(once enabled) prevents cross-hyperthread control of decisions made by
indirect branch predictors.
Enable this feature if
- the CPU is vulnerable to spectre v2
- the CPU supports SMT and has SMT siblings online
- spectre_v2 mitigation autoselection is enabled (default)
After some previous discussion, this leaves STIBP on all the time, as wrmsr
on crossing kernel boundary is a no-no. This could perhaps later be a bit
more optimized (like disabling it in NOHZ, experiment with disabling it in
idle, etc) if needed.
Note that the synchronization of the mask manipulation via newly added
spec_ctrl_mutex is currently not strictly needed, as the only updater is
already being serialized by cpu_add_remove_lock, but let's make this a
little bit more future-proof.
Signed-off-by: Jiri Kosina <
jkosina@suse.cz>
Signed-off-by: Thomas Gleixner <
tglx@linutronix.de>
Cc: Peter Zijlstra <
peterz@infradead.org>
Cc: Josh Poimboeuf <
jpoimboe@redhat.com>
Cc: Andrea Arcangeli <
aarcange@redhat.com>
Cc: "WoodhouseDavid" <
dwmw@amazon.co.uk>
Cc: Andi Kleen <
ak@linux.intel.com>
Cc: Tim Chen <
tim.c.chen@linux.intel.com>
Cc: "SchauflerCasey" <
casey.schaufler@intel.com>
Cc:
stable@vger.kernel.org
Link:
https://lkml.kernel.org/r/nycvar.YFH.7.76.1809251438240.15880@cbobk.fhfr.pm
Signed-off-by: Greg Kroah-Hartman <
gregkh@linuxfoundation.org>