From: Segher Boessenkool <segher@kernel.crashing.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Sathvika Vasireddy <sv@linux.ibm.com>,
nathan@kernel.org, nsc@kernel.org, maddy@linux.ibm.com,
mpe@ellerman.id.au, npiggin@gmail.com, chleroy@kernel.org,
jpoimboe@kernel.org, ojeda@kernel.org, masahiroy@kernel.org,
lossin@kernel.org, tamird@kernel.org,
thomas.weissschuh@linutronix.de, rostedt@goodmis.org,
ihor.solodrai@linux.dev, thuth@redhat.com, pmladek@suse.com,
aliceryhl@google.com, elver@google.com, kees@kernel.org,
legion@kernel.org, ardb@kernel.org, yuxuan.zuo@outlook.com,
alexghiti@rivosinc.com, alexandre.chartre@oracle.com,
bp@alien8.de, linux-kbuild@vger.kernel.org,
linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v1 1/6] objtool/powerpc: Add build-time fixup of alternate feature branch targets
Date: Wed, 6 May 2026 09:42:55 -0500 [thread overview]
Message-ID: <aftTbxYxnnfFr_rn@gate> (raw)
In-Reply-To: <20260506142214.GD3126523@noisy.programming.kicks-ass.net>
Hi!
On Wed, May 06, 2026 at 04:22:14PM +0200, Peter Zijlstra wrote:
> On Wed, May 06, 2026 at 08:58:57AM -0500, Segher Boessenkool wrote:
> > Huh.
> >
> > On function entry, there is *no* accessible stack frame, on our ABIs
> > (typically you can still access your parent's frame of course, but then
> > you first need to find out who your parent is, etc.) All stack frames
> > are always set up by separate store instructions. We are a RISC
> > architecture after all (POWER means "Performance Optimisation With
> > Enhanced RISC"). So objtool checks if we actually tore down all
> > stack frames? What a very useful thing to do.
> >
> > Stack frames are a software concept in the first place, it has nothing
> > to do with the hardware, *at all*. This is a bit different on archs
> > that *actually* have such a thing as a frame pointer, that don't emulate
> > it using a GPR (or something in memory!)
>
> So, remember that objtool was born to generate ORC stack unwind data.
> It needs to track the stack state at every instruction to accomplish
> this.
Yup.
> One of the basic sanity checks it does is ensuring there is no lingering
> stack state on RETURN -- this would obviously cause the
> caller/returned-to context to get a wee bit upset.
>
> And yes, I realize this might sound quite mad to a compiler person. But
It doesn't sound weird *at all*, we have to jump through many hoops in
the compiler as well as in the ABIs to make this work at all.
> remember that we have a ton of ASM (inline and otherwise) mixed in with
> our C code. And while you can add DWARF CFI to ASM, this has
> historically been a bit of a trainwreck, not in the least because the
> annotations got wrong and nothing warned about it until the unwinder
> would explode.
Typically, someone who writes inline assembler code cannot write CFI
statements properly *at all*, he/she just doesn't have all the necessary
information! Only the compiler does. It can put all kinds of stuff on
the stack for example. Writing CFI statements manually is really forr
someone writing machine code, or actual assembler code perhaps.
> > There are many other archs where all (or almost all, "all normal", call/
> > return sequences use a "link register", often called exactly that. It's
> > the modern consensus to design call/return around that, I'd say even.
> > It would be nice if this abstraction worked well ;-)
>
> Agreed. Its just that this thing has a very strong x86 flavour per its
> legacy ;-) We'll get it sorted.
Thanks for the care!
Segher
next prev parent reply other threads:[~2026-05-06 14:43 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-05 8:46 [PATCH v1 0/6] objtool: Fixup alternate feature relative addresses Sathvika Vasireddy
2026-05-05 8:46 ` [PATCH v1 1/6] objtool/powerpc: Add build-time fixup of alternate feature branch targets Sathvika Vasireddy
2026-05-05 14:45 ` Peter Zijlstra
2026-05-05 14:49 ` Peter Zijlstra
2026-05-05 15:48 ` Christophe Leroy (CS GROUP)
2026-05-06 7:17 ` Peter Zijlstra
2026-05-06 14:28 ` Segher Boessenkool
2026-05-05 15:56 ` Segher Boessenkool
2026-05-06 7:00 ` Peter Zijlstra
2026-05-06 13:58 ` Segher Boessenkool
2026-05-06 14:22 ` Peter Zijlstra
2026-05-06 14:42 ` Segher Boessenkool [this message]
2026-05-05 8:46 ` [PATCH v1 2/6] objtool: Set ELF_F_LAYOUT flag to preserve vmlinux segment layout Sathvika Vasireddy
2026-05-05 8:46 ` [PATCH v1 3/6] objtool: Fix "can't find starting instruction" warnings on vmlinux Sathvika Vasireddy
2026-05-05 8:46 ` [PATCH v1 4/6] objtool/powerpc: Skip jump destination analysis and unnanotated intra-function call warnings for --ftr-fixup Sathvika Vasireddy
2026-05-05 8:46 ` [PATCH v1 5/6] kbuild: Add objtool integration for PowerPC feature fixups Sathvika Vasireddy
2026-05-05 8:46 ` [PATCH v1 6/6] powerpc: Enable build-time feature fixup processing by default Sathvika Vasireddy
2026-05-05 9:05 ` [PATCH v1 0/6] objtool: Fixup alternate feature relative addresses Christophe Leroy (CS GROUP)
2026-05-05 11:40 ` 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=aftTbxYxnnfFr_rn@gate \
--to=segher@kernel.crashing.org \
--cc=alexandre.chartre@oracle.com \
--cc=alexghiti@rivosinc.com \
--cc=aliceryhl@google.com \
--cc=ardb@kernel.org \
--cc=bp@alien8.de \
--cc=chleroy@kernel.org \
--cc=elver@google.com \
--cc=ihor.solodrai@linux.dev \
--cc=jpoimboe@kernel.org \
--cc=kees@kernel.org \
--cc=legion@kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=lossin@kernel.org \
--cc=maddy@linux.ibm.com \
--cc=masahiroy@kernel.org \
--cc=mpe@ellerman.id.au \
--cc=nathan@kernel.org \
--cc=npiggin@gmail.com \
--cc=nsc@kernel.org \
--cc=ojeda@kernel.org \
--cc=peterz@infradead.org \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
--cc=sv@linux.ibm.com \
--cc=tamird@kernel.org \
--cc=thomas.weissschuh@linutronix.de \
--cc=thuth@redhat.com \
--cc=yuxuan.zuo@outlook.com \
/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