From: Peter Zijlstra <peterz@infradead.org>
To: Fangrui Song <maskray@sourceware.org>
Cc: linux-toolchains@vger.kernel.org,
linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: Concerns about SFrame viability for userspace stack walking
Date: Thu, 30 Oct 2025 19:22:38 +0100 [thread overview]
Message-ID: <20251030182238.GA2989771@noisy.programming.kicks-ass.net> (raw)
In-Reply-To: <CAN30aBF3MofmVTjTZ9KFq9OBM0nA16amP5VFv+VAEJfFkLx0qw@mail.gmail.com>
On Thu, Oct 30, 2025 at 09:48:50AM -0700, Fangrui Song wrote:
> Thanks for this perspective???the unwinder complexity concern is
> absolutely valid and critical for kernel use.
> To clarify my motivation: I've seen attempts to use SFrame for
> userspace adoption
> (https://fedoraproject.org/wiki/Changes/SFrameInBinaries ), and I
> believe it's not viable for that purpose given the size overhead I
> documented. My concerns are primarily about userspace adoption, not
> the kernel's internal unwinding.
>
> If SFrame is exclusively a kernel-space feature, it could be
> implemented entirely within objtool ??? similar to how objtool --link
> --orc generates ORC info for vmlinux.o. This approach would eliminate
> the need for any modifications to assemblers and linkers, while
> allowing SFrame to evolve in any incompatible way.
>
> For userspace, we could instead modify assemblers and linkers to
> support a more compact format or an extension to .eh_frame , but it
> won't be SFrame (all of Apple???s compact unwind, ARM EHABI???s
> exidx/extab, and Microsoft???s pdata/xdata can implement C++ exception
> handling , while SFrame can't, leading to a huge missed opportunity.)
No, you misunderstand. The x86_64 Linux kernel is using ORC internally
and we're happy with that. However, the kernel also needs to be able to
unwind/walk user stack frames.
We need simple robust means of walking user space stacks from the kernel.
It is here that SFrame is proposed on x86_64. The kernel consumes user
space SFrame data to unwind user space stacks. This is also why the
SFrame sections are SHF_ALLOC, such that the kernel can simply fault
them in on-demand without having to otherwise initiate IO.
next prev parent reply other threads:[~2025-10-30 18:22 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-30 6:53 Concerns about SFrame viability for userspace stack walking Fangrui Song
2025-10-30 7:30 ` Jakub Jelinek
2025-10-30 7:50 ` Fangrui Song
2025-10-30 8:05 ` Jakub Jelinek
2025-10-31 2:51 ` Fangrui Song
2025-10-30 10:26 ` Peter Zijlstra
2025-10-30 16:48 ` Fangrui Song
2025-10-30 17:03 ` Jose E. Marchesi
2025-10-31 4:22 ` Fangrui Song
2025-10-31 14:37 ` Jose E. Marchesi
2025-10-30 17:33 ` Steven Rostedt
2025-10-31 5:28 ` Fangrui Song
2025-10-30 18:22 ` Peter Zijlstra [this message]
2025-10-30 17:53 ` Andi Kleen
2025-10-30 18:07 ` Mark Brown
2025-10-30 18:31 ` Andi Kleen
2025-10-30 18:45 ` Mark Brown
2025-10-31 8:24 ` Fangrui Song
2025-10-30 18:57 ` Peter Zijlstra
2025-10-31 11:46 ` Mark Brown
2025-10-30 14:47 ` Jose E. Marchesi
2025-11-04 9:21 ` Indu
2025-11-05 8:21 ` Fangrui Song
2025-11-06 0:44 ` Indu Bhagat
2025-11-06 7:51 ` Florian Weimer
2025-11-06 21:02 ` Indu Bhagat
2025-11-06 9:20 ` Fangrui Song
2025-11-06 20:42 ` Indu Bhagat
2025-11-09 0:23 ` Fangrui Song
2025-12-01 9:04 ` Fangrui Song
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=20251030182238.GA2989771@noisy.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=linux-toolchains@vger.kernel.org \
--cc=maskray@sourceware.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.