Re: [PATCH v3 11/19] unwind: Add deferred user space unwinding API
Peter Zijlstra <[email protected]>
| Newsgroups | org.kernel.vger.linux-toolchains,org.kernel.vger.linux-kernel,org.kernel.vger.linux-perf-users |
|---|---|
| Message-ID | <[email protected]> |
On Wed, Oct 30, 2024 at 02:17:22AM -0400, Steven Rostedt wrote: > On Tue, 29 Oct 2024 19:20:32 +0100 > Peter Zijlstra <[email protected]> wrote: > > > The 48:16 bit split gives you uniqueness for around 78 hours at 1GHz. > > Are you saying that there will be one system call per nanosecond? This > number is incremented only when a task enters the kernel from user > spaces *and* requests a stack trace. If that happens 1000 times a > second, that would still be around 9000 years. We used to be able to do well over a million syscalls a second. I'm not exactly sure where we are now, the whole speculation shit-show hurt things quite badly. > > > > But seriously, perf doesn't need this. It really only needs a sequence > > number if you care to stitch over a LOST packet (and I can't say I care > > about that case much) -- and doing that right doesn't really take much > > at all. > > Perf may not care because it has a unique descriptor per task, right? > Where it can already know what events are associated to a task. But > that's just a unique characteristic of perf. The unwinder should give a > identifier for every user space stack trace that it will produce and > pass that back to the tracer when it requests a stack trace but it > cannot yet be performed. This identifier is what we are calling a > context cookie. Then when it wants the stack trace, the unwinder will > give the tracer the stack trace along with the identifier > (context-cookie) that this stack trace was for in the past. You're designing things inside out again. You should add functionality by adding layers. Pass a void * into the 'request-unwind' and have the 'do-unwind' callback get that same pointer. Then anybody that needs identifiers to figure out where things came from can stuff something in there.