Messages in this thread Patch in this message | | | Subject | Re: TRACE_EVENT_ABI ? | From | Steven Rostedt <> | Date | Mon, 21 Sep 2009 12:46:07 -0400 |
| |
On Mon, 2009-09-21 at 15:28 +0200, Arjan van de Ven wrote: > On Mon, 21 Sep 2009 09:26:41 -0400 (EDT) > Steven Rostedt <rostedt@goodmis.org> wrote: > > > > > [ Resending due to wrong SMTP server ] > > > > > > On Mon, 21 Sep 2009, Arjan van de Ven wrote: > > > > > Hi, > > > > > > Ingo suggested to make a TRACE_EVENT_ABI, which is equivalent in > > > implementation to TRACE_EVENT, except that it signals a stable > > > interface. > > > > > > In trying to implement this I'm running into a wall where > > > TRACE_EVENT keeps being defined in many different ways all over the > > > place, making this a really nasty hack to make it just an alias. > > > > > > Do you have any clever ideas on how to make this an alias without > > > fouling up the whole tracing system? > > > > > > > I don't know what you've done so far, but can't you simply in > > tracepoint.h define: > > > > #define TRACE_EVENT_API(a,b,c,d,e) TRACE_EVENT(a,b,c,d,e) > > unfortunately, due to the preprocessor trickery around TRACE_EVENT this > completely barfs.
I forgot to tell you about PARAMS.
This patch compiled for me;
diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h index 63a3f7a..9a983d6 100644 --- a/include/linux/tracepoint.h +++ b/include/linux/tracepoint.h @@ -280,6 +280,10 @@ static inline void tracepoint_synchronize_unregister(void) * TRACE_EVENT_FN to perform any (un)registration work. */ +#define TRACE_EVENT_API(name, proto, args, tstruct, assign, print) \ + TRACE_EVENT(name, PARAMS(proto), PARAMS(args), \ + PARAMS(tstruct), PARAMS(assign), PARAMS(print)) + #define TRACE_EVENT(name, proto, args, struct, assign, print) \ DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) #define TRACE_EVENT_FN(name, proto, args, struct, \ diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index b48f1ad..0ee1eb6 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h @@ -149,7 +149,7 @@ TRACE_EVENT(sched_wakeup_new, * (NOTE: the 'rq' argument is not used by generic trace events, * but used by the latency tracer plugin. ) */ -TRACE_EVENT(sched_switch, +TRACE_EVENT_API(sched_switch, TP_PROTO(struct rq *rq, struct task_struct *prev, struct task_struct *next),
| |