Re: [RFA][PATCH] tracing: Add trace_<tracepoint>_enabled() function

From: Mathieu Desnoyers
Date: Tue May 06 2014 - 17:16:45 EST


----- Original Message -----
> From: "Steven Rostedt" <rostedt@xxxxxxxxxxx>
> To: "Mathieu Desnoyers" <mathieu.desnoyers@xxxxxxxxxxxx>
> Cc: "LKML" <linux-kernel@xxxxxxxxxxxxxxx>, "Andrew Morton" <akpm@xxxxxxxxxxxxxxxxxxxx>, "Javi Merino"
> <javi.merino@xxxxxxx>, "David Howells" <dhowells@xxxxxxxxxx>, "Ingo Molnar" <mingo@xxxxxxxxxx>
> Sent: Tuesday, May 6, 2014 5:06:40 PM
> Subject: Re: [RFA][PATCH] tracing: Add trace_<tracepoint>_enabled() function
>
> On Tue, 6 May 2014 20:53:41 +0000 (UTC)
> Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx> wrote:
>
[...]
>
> > > The first time I thought about using this was with David's code, which
> > > does this:
> > >
> > > if (static_key_false(&i2c_trace_msg)) {
> > > int i;
> > > for (i = 0; i < ret; i++)
> > > if (msgs[i].flags & I2C_M_RD)
> > > trace_i2c_reply(adap, &msgs[i], i);
> > > trace_i2c_result(adap, i, ret);
> > > }
> > >
> > > That would look rather silly in a tracepoint.
> >
> > Which goes with a mandatory silly question: how do you intend mapping
> > the single key to two different tracepoints ?
>
> Could always do:
>
> if (trace_i2c_result_enabled() || trace_i2c_reply_enabled()) {
>
> I wounder what the assembly of that would look like.

I would expect it to generate two static jump sites back to back.

>
> Still, having "side-effects" in the tracepoint parameters just seems
> odd to me.

I agree that the "enabled" static inline approach is more flexible. So
if we document it well enough, it might be OK in the end.

Thanks,

Mathieu

--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/