Re: [PATCH v3 11/19] unwind: Add deferred user space unwinding API
Josh Poimboeuf <[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 03:58:16PM -0400, Steven Rostedt wrote: > On Wed, 30 Oct 2024 15:03:24 +0100 > Peter Zijlstra <[email protected]> wrote: > > > 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. > > What the hell should I do with a void pointer? I want a stack trace, I > ask for one, it gives me an identifier for it, then at the end when it > does my callback it gives me the stack trace I asked for with the > identifier that it belongs to. > > The identifier should be part of the unwinder code as it has to do > with the stack trace and has nothing to do with tracing. If at least most of the users would find the cookie useful -- which it sounds like they would, maybe even including perf -- then it makes sense to integrate that into the unwinder. It also helps the unwinder disambiguate which callbacks have been called and whether the stack has already been unwound. That said, I'm also implementing the void pointer thing, as AFAICT perf needs to pass the perf_event pointer to the callback. There's no reason we can't have both. -- Josh