Re: [PATCH 3/3] x86: Add straight-line-speculation mitigation

From: Kees Cook
Date: Fri Nov 19 2021 - 12:15:48 EST


On Fri, Nov 19, 2021 at 05:50:26PM +0100, Peter Zijlstra wrote:
> This little patch makes use of an upcomming GCC feature to mitigate
> straight-line-speculation for x86:
>
> https://gcc.gnu.org/g:53a643f8568067d7700a9f2facc8ba39974973d3
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102952
> https://bugs.llvm.org/show_bug.cgi?id=52323
>
> It's built tested on x86_64-allyesconfig using GCC-12 and GCC-11.
> It's also been boot tested on x86_64-defconfig+kvm_guest.config using
> GCC-12.
>
> Maintenace overhead of this should be fairly low due to objtool
> validation.
>
> Size overhead of all these additional int3 instructions comes to:
>
> text data bss dec hex filename
> 22267751 6933356 2011368 31212475 1dc43bb defconfig-build/vmlinux
> 22804126 6933356 1470696 31208178 1dc32f2 defconfig-build/vmlinux.sls
>
> Or roughly 2.4% additional text.

Thanks for adding the size details. (I remain surprised it's so much.)

> [...]
> 125 files changed, 441 insertions(+), 386 deletions(-)

I wonder if this patch should be split into a few pieces:

- objtool validation
- asm macro definitions
- mechanical ret/RET replacement
- Kconfig & Makefile

Personally I'd find that much easier to review, but either way:

Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>

Thanks!

--
Kees Cook