On Tue, Jun 10, 2025 at 08:54:27PM -0400, Steven Rostedt wrote: > From: Josh Poimboeuf <jpoimboe@xxxxxxxxxx> > > Add an interface for scheduling task work to unwind the user space stack > before returning to user space. This solves several problems for its > callers: > > - Ensure the unwind happens in task context even if the caller may be > running in interrupt context. > > - Avoid duplicate unwinds, whether called multiple times by the same > caller or by different callers. > > - Take a timestamp when the first request comes in since the task > entered the kernel. This will be returned to the calling function > along with the stack trace when the task leaves the kernel. This > timestamp can be used to correlate kernel unwinds/traces with the user > unwind. > > The timestamp is created to detect when the stacktrace is the same. It is > generated the first time a user space stacktrace is requested after the > task enters the kernel. > > The timestamp is passed to the caller on request, and when the stacktrace is > generated upon returning to user space, it call the requester's callback > with the timestamp as well as the stacktrace. This whole story hinges on there being a high resolution time-stamp available... Good thing we killed x86 !TSC support when we did. You sure there's no other architectures you're interested in that lack a high res time source? What about two CPUs managing to request an unwind at exactly the same time?