Re: [PATCH v2] percpu: improve percpu_alloc_percpu event trace

Steven Rostedt
2022-05-15T22:06:54Z

On Tue, 10 May 2022 19:33:17 -0700
Roman Gushchin <roman.gushchin@linux.dev> wrote:

> --- a/include/trace/events/percpu.h
> > +++ b/include/trace/events/percpu.h
> > @@ -6,15 +6,20 @@
> > #define _TRACE_PERCPU_H
> >
> > #include <linux/tracepoint.h>
> > +#include <trace/events/mmflags.h>
> >
> > TRACE_EVENT(percpu_alloc_percpu,
> >
> > - TP_PROTO(bool reserved, bool is_atomic, size_t size,
> > - size_t align, void *base_addr, int off, void __percpu *ptr),
> > + TP_PROTO(unsigned long call_site,
> > + bool reserved, bool is_atomic, size_t size,
> > + size_t align, void *base_addr, int off,
> > + void __percpu *ptr, size_t bytes_alloc, gfp_t gfp_flags),
>
> Don't we want to preserve the order and add the call_site at the end?
> Trace events are not ABI, but if we don't have a strong reason to break it,
> I'd preserve the old order.

Ideally everyone should be using libtraceevent which will parse the format
file for the needed entries.

Nothing (important) should be parsing the raw ascii from the trace files.
It's slow and unreliable. The raw format (trace_pipe_raw) files, along with
libtraceevent will handle fining the fields you are looking for, even if
the fields move around (internally or externally).

Then there's trace-cruncher (a python script that uses libtracefs and
libtraceevent) that will work too.

https://github.com/vmware/trace-cruncher

-- Steve