Messages in this thread | | | From | Julien Desfossez <> | Subject | [RFC PATCH v3 0/2] Extend scheduling tracepoints | Date | Fri, 13 Jan 2017 12:19:51 -0500 |
| |
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
| |