Re: [PATCH RFC 04/10] perf: Introduce deferred user callchains

From: Josh Poimboeuf
Date: Fri Sep 13 2024 - 10:48:14 EST


On Fri, Sep 13, 2024 at 06:53:58AM -0700, Josh Poimboeuf wrote:
> On Fri, Sep 13, 2024 at 03:36:29PM +0200, Peter Zijlstra wrote:
> > On Fri, Sep 13, 2024 at 06:08:34AM -0700, Josh Poimboeuf wrote:
> > > On Mon, Nov 20, 2023 at 03:03:34PM +0100, Peter Zijlstra wrote:
> > > > On Wed, Nov 15, 2023 at 08:13:31AM -0800, Namhyung Kim wrote:
> > > > > + /*
> > > > > + * Deferred user stack callchains (for SFrame). Previous samples would
> > > >
> > > > Possibly also useful for ShadowStack based unwinders. And by virtue of
> > > > it possibly saving work when multiple consecutive samples hit
> > > > the same kernel section, for everything.
> > >
> > > [ necroing old thread as I'm finally working on a v2 ]
> > >
> > > Peter, can you elaborate? What did you mean by "same kernel section"?
> > >
> > > Like if there's a duplicate kernel callchain? Or something else?
> >
> > Yeah, multiple samples hitting the same syscall invocation will, by
> > necessity, have the same user callchain.

If duplicate user space stacks were removed then would that not give a
skewed perf profile? Or at least a less detailed one? i.e., it might
be good to know if a certain system call was taking forever.

If that's not an issue, I was also wondering if we would want deferred
even types for the other user options like PERF_SAMPLE_STACK_DEFERRED
and PERF_RECORD_USER_REGS_DEFERRED?

Or if it would instead make sense to combine all the deferred user
options into a single variable length PERF_RECORD_USER_DEFERRED event
type?

--
Josh