From: Frederic Weisbecker <fweisbec@gmail.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Arjan van de Ven <arjan@infradead.org>,
linux-kernel@vger.kernel.org, mingo@elte.hu
Subject: Re: TRACE_EVENT_ABI ?
Date: Mon, 21 Sep 2009 19:58:53 +0200 [thread overview]
Message-ID: <20090921175851.GA5018@nowhere> (raw)
In-Reply-To: <1253551567.2630.26.camel@frodo>
On Mon, Sep 21, 2009 at 12:46:07PM -0400, Steven Rostedt wrote:
> 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;
Oh! PARAMS!
I've needed something to "contain" cpp args by the past so that they
are not substituted too early, which is needed while relaying cpp args
from a macro to another. I needed this to fix TRACE_EVENT_FN: it barfed
for the exact same reason.
So I've created __cpparg(), which I'm just discovering, does the exact
same thing than PARAM... :-/
I'm going to s/__cpparg/PARAM for the consistency.
> 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),
>
>
next prev parent reply other threads:[~2009-09-21 17:58 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-21 7:36 TRACE_EVENT_ABI ? Arjan van de Ven
2009-09-21 12:42 ` Steven Rostedt
2009-09-21 13:26 ` Steven Rostedt
2009-09-21 13:28 ` Arjan van de Ven
2009-09-21 16:46 ` Steven Rostedt
2009-09-21 17:58 ` Frederic Weisbecker [this message]
2009-09-21 18:00 ` Arjan van de Ven
2009-09-21 21:20 ` Steven Rostedt
2009-09-23 8:32 ` [patch] introduce TRACE_EVENT_ABI (was Re: TRACE_EVENT_ABI ?) Arjan van de Ven
2009-09-23 10:57 ` Frédéric Weisbecker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090921175851.GA5018@nowhere \
--to=fweisbec@gmail.com \
--cc=arjan@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox