On 05/06/19 12:01, Steven Rostedt wrote: > On Mon, 6 May 2019 16:33:17 +0100 > Qais Yousef <[email protected]> wrote: > > > On 05/06/19 10:46, Steven Rostedt wrote: > > > On Mon, 6 May 2019 15:42:00 +0100 > > > Qais Yousef <[email protected]> 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

