From: Peter Zijlstra <peterz@infradead.org>
To: Josh Poimboeuf <jpoimboe@kernel.org>
Cc: x86@kernel.org, jpoimboe@redhat.com,
linux-kernel@vger.kernel.org, elver@google.com,
jbaron@akamai.com, rostedt@goodmis.org, ardb@kernel.org,
mark.rutland@arm.com
Subject: Re: [PATCH 2/7] objtool: Extend UNWIND_HINT based ENDBR rules
Date: Sat, 28 May 2022 16:09:13 +0200 [thread overview]
Message-ID: <YpItCeLkwme025xD@worktop.programming.kicks-ass.net> (raw)
In-Reply-To: <20220526150549.vqvggcuqmw2baslp@treble>
On Thu, May 26, 2022 at 08:05:49AM -0700, Josh Poimboeuf wrote:
> On Thu, May 26, 2022 at 12:52:54PM +0200, Peter Zijlstra wrote:
> > Extend the UNWIND hint driven rules for ENDBR placement. Currently
> > objtool expects an ENDBR at any UNWINT_HINT_IRET_REGS that is at +0 of
> > an STB_GLOBAL symbol, with the expectation that this is an exception
> > entry point.
> >
> > Extend this to also expect ENDBR at UNWIND_HINT_EMPTY at +0 for
> > STB_GLOBAL symbols, with the expectation that these are also machine
> > entry points (SYSCALL et. al.).
> >
> > This guarantees all machine entry points are covered by objtool rules at
> > the expense of a few additional false positives:
> >
> > vmlinux.o: warning: objtool: startup_64+0x0: UNWIND_HINT_EMPTY without ENDBR
> > vmlinux.o: warning: objtool: start_cpu0+0x0: UNWIND_HINT_EMPTY without ENDBR
> >
> > Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
>
> I can't remember if this was my bright idea, but it feels kind of
> arbitrary. Hopefully there won't be a lot of false positives.
The existing UNWIND_HINT_IRET_REGS at +0 was your idea, I'm just trying
to cover more.
> Anyway, won't SYSCALL-type symbols typically be referenced elsewhere in
> the kernel and thus be found by the regular IBT validation?
They do indeed, and that's what we've been relying on. I just figured it
would be more consistent to have rules covering all machine entry
points.
(also all the Xen entry points are EMPTY like).
> Do you have any examples of where this warning would trigger if there
> were a missing ENDBR?
No.
Anyway, I can drop these first two patches for now.
next prev parent reply other threads:[~2022-05-28 14:09 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-26 10:52 [PATCH 0/7] x86: Address various objtool complaints Peter Zijlstra
2022-05-26 10:52 ` [PATCH 1/7] x86/entry: Anchor annotation Peter Zijlstra
2022-05-26 15:04 ` Josh Poimboeuf
2022-05-26 10:52 ` [PATCH 2/7] objtool: Extend UNWIND_HINT based ENDBR rules Peter Zijlstra
2022-05-26 15:05 ` Josh Poimboeuf
2022-05-28 14:09 ` Peter Zijlstra [this message]
2022-05-26 10:52 ` [PATCH 3/7] objtool: Mark __ubsan_handle_builtin_unreachable() as noreturn Peter Zijlstra
2022-05-30 13:17 ` Marco Elver
2022-05-26 10:52 ` [PATCH 4/7] x86/cpu: Elide KCSAN for cpu_has() and friends Peter Zijlstra
2022-05-30 13:14 ` Marco Elver
2022-05-26 10:52 ` [PATCH 5/7] jump_label,noinstr: Avoid instrumentation for JUMP_LABEL=n builds Peter Zijlstra
2022-05-30 13:20 ` Marco Elver
2022-05-26 10:52 ` [PATCH 6/7] x86: Always inline on_thread_stack() and current_top_of_stack() Peter Zijlstra
2022-05-30 10:38 ` [tip: objtool/urgent] " tip-bot2 for Peter Zijlstra
2022-05-30 13:21 ` [PATCH 6/7] " Marco Elver
2022-05-26 10:52 ` [PATCH 7/7] context_tracking: Always inline empty stubs Peter Zijlstra
2022-05-26 15:02 ` Josh Poimboeuf
2022-05-26 15:10 ` Mark Rutland
2022-05-26 15:16 ` Josh Poimboeuf
2022-05-26 15:26 ` Mark Rutland
2022-05-30 10:38 ` [tip: objtool/urgent] " tip-bot2 for Peter Zijlstra
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=YpItCeLkwme025xD@worktop.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=ardb@kernel.org \
--cc=elver@google.com \
--cc=jbaron@akamai.com \
--cc=jpoimboe@kernel.org \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=rostedt@goodmis.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.