x86/retbleed: Add call depth tracking mitigation
authorThomas Gleixner <tglx@linutronix.de>
Thu, 15 Sep 2022 11:11:38 +0000 (13:11 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Mon, 17 Oct 2022 14:41:20 +0000 (16:41 +0200)
commitd82a0345cf218f5050f5ad913e1ae6c579105731
treeaa40170b55965e94324471a2d5bb74e938e03510
parentee3e2469b3463d28ca4cde20e0283319ac6a562d
x86/retbleed: Add call depth tracking mitigation

The fully secure mitigation for RSB underflow on Intel SKL CPUs is IBRS,
which inflicts up to 30% penalty for pathological syscall heavy work loads.

Software based call depth tracking and RSB refill is not perfect, but
reduces the attack surface massively. The penalty for the pathological case
is about 8% which is still annoying but definitely more palatable than IBRS.

Add a retbleed=stuff command line option to enable the call depth tracking
and software refill of the RSB.

This gives admins a choice. IBeeRS are safe and cause headaches, call depth
tracking is considered to be s(t)ufficiently safe.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20220915111149.029587352@infradead.org
arch/x86/kernel/cpu/bugs.c