tracepoint: Give priority to probes of tracepoints
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>
Tue, 22 Sep 2015 21:13:19 +0000 (17:13 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Mon, 26 Oct 2015 01:33:54 +0000 (21:33 -0400)
commit7904b5c4988e18b50056b5e71a3ffca752a8a451
tree4319a3e6fe143e6404420f885275cb1f7c87a1a4
parent883a1e867e0fe7c2dc2e5844ef692f80177631d5
tracepoint: Give priority to probes of tracepoints

In order to guarantee that a probe will be called before other probes that
are attached to a tracepoint, there needs to be a mechanism to provide
priority of one probe over the others.

Adding a prio field to the struct tracepoint_func, which lets the probes be
sorted by the priority set in the structure. If no priority is specified,
then a priority of 10 is given (this is a macro, and perhaps may be changed
in the future).

Now probes may be added to affect other probes that are attached to a
tracepoint with a guaranteed order.

One use case would be to allow tracing of tracepoints be able to filter by
pid. A special (higher priority probe) may be added to the sched_switch
tracepoint and set the necessary flags of the other tracepoints to notify
them if they should be traced or not. In case a tracepoint is enabled at the
sched_switch tracepoint too, the order of the two are not random.

Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
include/linux/tracepoint.h
kernel/tracepoint.c