linux-toolchains.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Segher Boessenkool <segher@kernel.crashing.org>
Cc: Borislav Petkov <bp@alien8.de>, X86 ML <x86@kernel.org>,
	Michael Matz <matz@suse.de>,
	linux-toolchains@vger.kernel.org,
	LKML <linux-kernel@vger.kernel.org>,
	Josh Poimboeuf <jpoimboe@redhat.com>
Subject: Re: [PATCH] x86/sev: Mark snp_abort() noreturn
Date: Wed, 24 Aug 2022 22:45:12 +0200	[thread overview]
Message-ID: <YwaN2HtMyM0YEdSB@worktop.programming.kicks-ass.net> (raw)
In-Reply-To: <20220824172929.GA25951@gate.crashing.org>

On Wed, Aug 24, 2022 at 12:29:29PM -0500, Segher Boessenkool wrote:
> Hi!
> 
> On Wed, Aug 24, 2022 at 05:24:20PM +0200, Borislav Petkov wrote:
> > Mark both the function prototype and definition as noreturn in order to
> > prevent the compiler from doing transformations which confuse objtool
> > like so:
> > 
> >   vmlinux.o: warning: objtool: sme_enable+0x71: unreachable instruction
> 
> Would -Wmissing-noreturn have caught this?  It sounds like you need this
> (and then fix all resulting warnings) to not upset objtool?
> 
> It is nice to have this anyway (if there aren't a zillion false
> positives), but it seems objtool is very fragile.

Well, just like gcc has noreturn heuristics so has objtool, it just
turns into pain when they don't agree with one another.

Ideally noreturn would be reflected in the object file so we don't have
to guess at it. STT_FUNC_NORETURN would do I suppose, except then all
the tools will need to be taught how to deal with that, which is also
very painful.

Another options is something like .symtab.noreturn which is another
symbol table explicitly listing the noreturn functions. Since it's an
extra section tools that don't know about it can freely ignore it and
carry on as usual.

  parent reply	other threads:[~2022-08-24 20:45 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-24 15:24 [PATCH] x86/sev: Mark snp_abort() noreturn Borislav Petkov
2022-08-24 15:38 ` Peter Zijlstra
2022-08-24 15:48   ` Borislav Petkov
2022-08-24 16:16     ` Peter Zijlstra
2022-08-24 16:43       ` [PATCH v2] " Borislav Petkov
2022-08-24 17:29 ` [PATCH] " Segher Boessenkool
2022-08-24 18:23   ` Borislav Petkov
2022-08-24 18:44   ` Nick Desaulniers
2022-08-24 19:43     ` Segher Boessenkool
2022-08-24 20:45   ` Peter Zijlstra [this message]
2022-08-24 22:41     ` Segher Boessenkool
2022-08-25  6:41       ` Peter Zijlstra
2022-08-25 12:29         ` Michael Matz
2022-08-25 12:58         ` Segher Boessenkool
2022-08-25 13:12         ` David Laight
2022-08-30  4:48           ` Josh Poimboeuf
2022-08-30  4:46     ` Josh Poimboeuf

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=YwaN2HtMyM0YEdSB@worktop.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=bp@alien8.de \
    --cc=jpoimboe@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-toolchains@vger.kernel.org \
    --cc=matz@suse.de \
    --cc=segher@kernel.crashing.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).