On Thu, Apr 23, 2026 at 10:47:58AM +0200, Peter Zijlstra wrote: > On Wed, Apr 22, 2026 at 09:04:13PM -0700, Josh Poimboeuf wrote: > > PREFIX_SYMBOLS has a !CFI dependency because the compiler already > > generates __cfi_ prefix symbols for kCFI builds, so objtool-generated > > __pfx_ symbols were considered redundant. > > > > However, the __cfi_ symbols only cover the 5-byte kCFI type hash. With > > FUNCTION_CALL_PADDING, there are also 11 bytes of NOP padding between > > the hash and the function entry which have no symbol to claim them. > > If you force the function alignment to 64 bytes, the prefix will also be > 64bytes, rather than the normal 16.
Sorry, how do you get 64 here? > > The NOPs can be rewritten with call depth tracking thunks at runtime. > > Without a symbol, unwinders and other tools that symbolize code > > locations misattribute those bytes. > > > > Remove the !CFI guard so objtool creates __pfx_ symbols for all > > CALL_PADDING configs, covering the full padding area regardless of > > whether there's also a __cfi_ symbol. > > Egads, that a ton of symbols :/ Does it not make sense to 'fix' up the > __cfi_ symbols to cover the whole prefix? Yeah, I suppose that would be better, via objtool I presume. -- Josh

