[RFC PATCH v3 0/2] Extend scheduling tracepoints

From: Julien Desfossez
Date: Fri Jan 13 2017 - 12:29:01 EST


This patchset proposes a way to extend the existing scheduling tracepoints. The
intent is to allow to output relevant priority informations based on the
scheduling class of the tasks without breaking the existing tracepoints or
having to handle the various cases in the scheduler code.

The proposed approach is to add the TRACE_EVENT_MAP_COND macro which depends on
an existing TRACE_EVENT, but only writes data into the trace when a condition
is satisfied. This allows to create multiple versions of the same tracepoint
without having to call each of them explicitly from the instrumented code.

This approach is then illustrated with the sched_switch tracepoint, where we
provide a way to output different fields based on the scheduling class of the
next task.

If accepted, this method could be used everywhere the "prio" field is currently
exposed to user-space through traces.

Julien Desfossez (2):
tracing: add TRACE_EVENT_MAP_COND
tracing: add policy-based sched_switch events

include/linux/trace_events.h | 14 +++-
include/linux/tracepoint.h | 6 ++
include/trace/define_trace.h | 6 ++
include/trace/events/sched.h | 192 +++++++++++++++++++++++++++++++++++++++++++
include/trace/perf.h | 24 ++++--
include/trace/trace_events.h | 130 +++++++++++++++++++++++++----
kernel/trace/trace_events.c | 15 +++-
7 files changed, 360 insertions(+), 27 deletions(-)

--
1.9.1