From: Kees Cook <kees@kernel.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: kernel test robot <lkp@intel.com>,
llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
linux-kernel@vger.kernel.org, x86@kernel.org,
Ingo Molnar <mingo@kernel.org>
Subject: Re: [tip:x86/core 16/17] vmlinux.o: warning: objtool: do_jit+0x276: relocation to !ENDBR: .noinstr.text+0x6a60
Date: Mon, 3 Mar 2025 11:09:50 -0800 [thread overview]
Message-ID: <202503031109.2D9F1CD@keescook> (raw)
In-Reply-To: <20250303185748.GC15322@noisy.programming.kicks-ass.net>
On Mon, Mar 03, 2025 at 07:57:48PM +0100, Peter Zijlstra wrote:
> On Mon, Mar 03, 2025 at 09:11:54AM -0800, Kees Cook wrote:
> > On Mon, Mar 03, 2025 at 10:24:59AM +0100, Peter Zijlstra wrote:
>
> > > > >> vmlinux.o: warning: objtool: do_jit+0x276: relocation to !ENDBR: .noinstr.text+0x6a60
>
> > Just for my own curiosity, how did you track this down? (The
> > relationship between cfi_bhi and do_jit is not immediately obvious to
> > me. Or rather, what was needing DCE?)
>
> If you build dfebe7362f6f461d771cdb9ac2c5172a4721f064 (tip/x86/core^2 so
> as to not have the fix) and build a FINEIBT=y kernel with clang-19 (so
> as not to have support for kcfi-ariry) then:
>
> $ ./scripts/objdump-func tmp-build/vmlinux.o do_jit
> ...
> 0267 6a2a7: 48 c1 e9 20 shr $0x20,%rcx
> 026b 6a2ab: 0f 85 16 39 00 00 jne 6dbc7 <do_jit+0x3b87>
> 0271 6a2b1: 48 8b 44 24 20 mov 0x20(%rsp),%rax
> 0276 6a2b6: 48 c7 c1 00 00 00 00 mov $0x0,%rcx 6a2b9: R_X86_64_32S __bhi_args+0x20
> 027d 6a2bd: c6 43 0b e8 movb $0xe8,0xb(%rbx)
> 0281 6a2c1: 48 83 c0 10 add $0x10,%rax
> 0285 6a2c5: 29 c1 sub %eax,%ecx
> 0287 6a2c7: 89 4b 0c mov %ecx,0xc(%rbx)
> ...
>
>
> So the reference is to __bhi_args[1], this is the result of
> emit_fineibt(.arity=1).
>
> Anyway, the point is that for FINEIBT_BHI=n the __bhi_args[]
> array is 'empty' and the +0x20 thing points into random.
>
> What needs DCE is the whole if (cfi_bhi) branch in emit_fineibt(),
> making that whole __bhi_args[] reference go away.
AH! Yes, that does stand out. :) Thanks!
--
Kees Cook
prev parent reply other threads:[~2025-03-03 19:09 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-02 23:47 [tip:x86/core 16/17] vmlinux.o: warning: objtool: do_jit+0x276: relocation to !ENDBR: .noinstr.text+0x6a60 kernel test robot
2025-03-03 9:24 ` Peter Zijlstra
2025-03-03 9:43 ` Peter Zijlstra
2025-03-03 9:49 ` Peter Zijlstra
2025-03-03 10:02 ` [tip: x86/core] x86/ibt: Make cfi_bhi a constant for FINEIBT_BHI=n tip-bot2 for Peter Zijlstra
2025-03-03 17:11 ` [tip:x86/core 16/17] vmlinux.o: warning: objtool: do_jit+0x276: relocation to !ENDBR: .noinstr.text+0x6a60 Kees Cook
2025-03-03 18:57 ` Peter Zijlstra
2025-03-03 19:09 ` Kees Cook [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202503031109.2D9F1CD@keescook \
--to=kees@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkp@intel.com \
--cc=llvm@lists.linux.dev \
--cc=mingo@kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=peterz@infradead.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.