Re: [PATCH v8 02/10] x86/bhi: Make clear_bhb_loop() effective on newer CPUs
From: Borislav Petkov <bp@alien8.de>
Date: 2026-03-25 20:38:55
Also in:
bpf, kvm, linux-doc, lkml
From: Borislav Petkov <bp@alien8.de>
Date: 2026-03-25 20:38:55
Also in:
bpf, kvm, linux-doc, lkml
On Tue, Mar 24, 2026 at 03:13:08PM -0700, Pawan Gupta wrote:
This is cleaner. A few things to consider are, CLEAR_BRANCH_HISTORY that calls clear_bhb_loop() would be calling into C code very early during the kernel entry. The code generated here may vary based on the compiler. Any indirect branch here would be security risk. This needs to be noinstr so that it can't be hijacked by probes and ftraces. At kernel entry, calling into C before mitigations are applied is risky.
You can write the above function in asm if you prefer - should still be easier.
Although call to clear_bhb_loop() will be inserted at the end of the BPF program before it returns, I am not sure if it is safe to assume that trashing registers in the path clear_bhb_loop() -> __clear_bhb_loop() is okay? Especially, when we don't know what code compiler generated for clear_bhb_loop(). BPF experts would know better?
The compiler would preserve the regs. If you write it in asm and you adhere to
the C ABI, you could preserve them too. Shouldn't be too many.
Thx.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette