Re: [PATCH v10 04/14] unwind_user/deferred: Add unwind_deferred_trace()
From: Steven Rostedt <rostedt@goodmis.org>
Date: 2025-06-18 15:29:38
Also in:
bpf, lkml
From: Steven Rostedt <rostedt@goodmis.org>
Date: 2025-06-18 15:29:38
Also in:
bpf, lkml
On Wed, 18 Jun 2025 16:02:47 +0200 Peter Zijlstra [off-list ref] wrote:
On Tue, Jun 10, 2025 at 08:54:25PM -0400, Steven Rostedt wrote:quoted
+/** + * unwind_deferred_trace - Produce a user stacktrace in faultable context + * @trace: The descriptor that will store the user stacktrace + * + * This must be called in a known faultable context (usually when entering + * or exiting user space). Depending on the available implementations + * the @trace will be loaded with the addresses of the user space stacktrace + * if it can be found.I am confused -- why would we ever want to call this on exiting user-space, or rather kernel entry? I thought the whole point was to request a user trace while in-kernel, and defer that to return-to-user.
This code was broken out of the unwind deferred trace to be more stand alone. Actually, it should be renamed to unwind_faultable_trace() or something to denote that it must be called from a faultable context. When Josh made perf use the task_work directly, it used this function to do the trace as it handled the deferring. Note, a request from the gcc folks is to add a system call that gives the user space application a backtrace from its current location. This can be handy for debugging as it would be similar to how we use dump_stack(). This function would be used for that. -- Steve