Re: Is there a notification mechanism for enabled/disabled traceevents?

From: Steven Rostedt
Date: Thu Nov 07 2013 - 09:05:10 EST


On Thu, 7 Nov 2013 17:42:54 +0900
Alexandre Courbot <gnurou@xxxxxxxxx> wrote:

> Hi everyone,
>
> Trace events can be enabled through debugfs by e.g. writing '1' into
> their enable node. This is a very useful feature as some tracing
> functions can introduce overhead and we only want them active when
> needed.
>
> There is one additional thing that I would need though, which is to be
> notified when a given trace event is enabled or disabled.
>
> Here is why: I have a power monitoring hardware that can report how
> much power is currently used by the system. Having this information
> correlated with other traces (cpufreq, cpuidle, ...) is very useful ;
> it can be done by repeatedly scheduling a work that probes the power
> usage and traces it. The job should only be running when the power
> monitoring trace event is enabled, but AFAIK there is no way to be
> notified when it is enabled or disabled. So here are a few questions:

I'm a little confused by this. Your power monitoring is only enabled
when someone enables the power tracepoints? Why not have the user start
monitoring and have it enable the tracepoints itself?

>
> 1) Is there such a notification mechanism for trace events that I have missed?

That you missed? Can you elaborate here.

>
> 2) If not, is there any objection to having one? I'd say my use-case
> is not so uncommon and others would certainly benefit from it.
>
> 3) What would be the right place to have it? ftrace_event_reg() looks
> like a good place to call a notifier chain, however I'm not sure where
> the notifier head should be stored, due to my poor understanding of
> ftrace.

There is a way to hard code a notifier for tracepoints, look at how
TRACE_EVENT_FN() is used (include/trace/events/syscalls.h)

But having a generic notifier may not be too hard or invasive to
implement.

-- Steve

>
> Any answer/comments greatly appreciated!
>
> Thanks,
> Alex.

--
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/