On Fri, Nov 14, 2025 at 10:29 AM Steven Rostedt <[email protected]> wrote: > > On Fri, 14 Nov 2025 10:09:26 -0800 > Ian Rogers <[email protected]> wrote: > > > Just to be clear. I don't think the behavior of using frame pointers > > should change. Deferral has downsides, for example: > > > > $ perf record -g -a sleep 1 > > The biggest advantage of the deferred callstack is that there's much less > duplication of data in the ring buffer. Especially when you have deep > stacks and long system calls.
I've never had anybody raise this as a concern with fp stack traces, especially given the stack snapshot approach being far more space consuming - but okay. > Now, if we have frame pointers enabled, we could possibly add a feature to > the deferred unwinder where it could try to do the deferred immediately and > if it faults it then waits until going back to user space. This means that > the frame pointer version should work (unless the user space stack was > swapped out). > > > > > Without deferral kernel stack traces will contain both kernel and user > > traces. With deferral the user stack trace is only generated when the > > system call returns and so there is a chance for kernel stack traces > > to be missing their user part. An obvious behavioral change. I think > > for what you are doing here we can have an option something like: > > > > $ perf record --call-graph fp-deferred -a sleep 1 > > I would be OK with this but I would prefer a much shorter name. Adding 20 > characters to the command line will likely keep people from using it. Fwiw, with buildid-mmap we just (v6.18) flipped the default when the kernel has the feature to use it. The kernel feature was added in v5.12. https://lore.kernel.org/r/[email protected] I don't oppose a shorter name, callchain option, .. Unfortunately with `perf record` -d is taken for saying record data mmaps, -D is taken for a start-up delay option, and -G is a cgroup option. Perhaps '-f' for "frame" and have it mirror '-g' except that deferred is default true rather than false. Thanks, Ian > -- Steve
