[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190506172336.cxbfwasv7rfegbi3@e107158-lin.cambridge.arm.com>
Date: Mon, 6 May 2019 18:23:36 +0100
From: Qais Yousef <qais.yousef@....com>
To: Steven Rostedt <rostedt@...dmis.org>
Cc: Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>, linux-kernel@...r.kernel.org,
Pavankumar Kondeti <pkondeti@...eaurora.org>,
Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
Uwe Kleine-Konig <u.kleine-koenig@...gutronix.de>
Subject: Re: [PATCH 4/7] sched: Add sched_load_rq tracepoint
On 05/06/19 12:01, Steven Rostedt wrote:
> On Mon, 6 May 2019 16:33:17 +0100
> Qais Yousef <qais.yousef@....com> wrote:
>
> > On 05/06/19 10:46, Steven Rostedt wrote:
> > > On Mon, 6 May 2019 15:42:00 +0100
> > > Qais Yousef <qais.yousef@....com> wrote:
> > >
> > > > I can control that for the wrappers I'm introducing. But the actual tracepoint
> > > > get the 'trace_' part prepended automatically by the macros.
> > > >
> > > > ie DECLARE_TRACE(pelt_rq, ...) will automatically generate a function called
> > > > trace_pelt_se(...)
> > > >
> > > > Or am I missing something?
> > >
> > > No trace comes from the trace points.
>
> Re-reading that line, I see I totally didn't express what I meant :-p
>
> >
> > If you want I can do something like below to help create a distinction. It is
> > none enforcing though.
> >
> > diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h
> > index 9c3186578ce0..f654ced20045 100644
> > --- a/include/linux/tracepoint.h
> > +++ b/include/linux/tracepoint.h
> > @@ -232,6 +232,7 @@ static inline struct tracepoint *tracepoint_ptr_deref(tracepoint_ptr_t *p)
> > */
> > #define __DECLARE_TRACE(name, proto, args, cond, data_proto, data_args) \
> > extern struct tracepoint __tracepoint_##name; \
> > + static inline void tp_##name(proto) __alias(trace_##name); \
> > static inline void trace_##name(proto) \
> > { \
> > if (static_key_false(&__tracepoint_##name.key)) \
> >
> >
> > Another option is to extend DECLARE_TRACE() to take a new argument IS_TP and
> > based on that select the function name. This will be enforcing but I will have
> > to go fixup many places.
> >
> > Of course 'TP' can be replaced with anything more appealing.
>
> No no no, I meant to say...
>
> "No that's OK. The "trace_" *is* from the trace points, and trace
> events build on top of them."
I did have to stare at the original statement for a bit :-)
This makes more sense now. Thanks for the clarification.
--
Qais Yousef
Powered by blists - more mailing lists