Re: [PATCH] static_call,x86: Robustify trampoline patching

From: Peter Zijlstra
Date: Wed Nov 03 2021 - 04:39:20 EST


On Tue, Nov 02, 2021 at 05:20:05PM -0700, Andy Lutomirski wrote:
> I think that's a big mistake -- any sane ENDBR-using scheme would
> really prefer that ENDBR to be right next to the actual function body,
> and really any scheme would benefit due to better cache locality.

Agreed, IBT/BTI want the landing pad in front of the actual function.

> But, more importantly, IMO any sane ENDBR-using scheme wants to
> generate the indirect stub as part of code gen for the actual
> function.

Sorta, I really want to be able to not have a landing pad for functions
whose address is never taken. At that point it doesn't matter if it gets
generated along with the function and then stripped/poisoned later, or
generated later.

As such, the landing pad should not be part of the function proper,
direct calls should never observe it.

Less landing pads is more better.