On Tue, 10 May 2022 19:33:17 -0700 Roman Gushchin <roman.gushchin@xxxxxxxxx> 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