tracing: Add sample code for custom trace events
authorSteven Rostedt (Google) <rostedt@goodmis.org>
Thu, 3 Mar 2022 22:05:32 +0000 (17:05 -0500)
committerSteven Rostedt (Google) <rostedt@goodmis.org>
Fri, 11 Mar 2022 16:48:43 +0000 (11:48 -0500)
commit953c2f052112a857c00058a641dc0c58ec7551d4
tree4113cdf34d6e167cee72debf067e54716584e89a
parent8bcd06632b73291e8734f46084ed04f4106b840a
tracing: Add sample code for custom trace events

Add sample code to show how to create custom trace events in the tracefs
directory that can be enabled and modified like any event in tracefs
(including triggers, histograms, synthetic events and event probes).

The example is creating a custom sched_switch and a sched_waking to limit
what is recorded:

If the custom sched switch only records the prev_prio, next_prio and
next_pid, it can bring the size from 64 bytes per event, down to just 16
bytes!

If sched_waking only records the prio and pid of the woken event, it will
bring the size down from 36 bytes to 12 bytes per event.

This will allow for a much smaller footprint into the ring buffer and keep
more events from dropping.

Link: https://lkml.kernel.org/r/20220303220625.369226746@goodmis.org
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Tom Zanussi <zanussi@kernel.org>
Suggested-by: Joel Fernandes <joel@joelfernandes.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
samples/Kconfig
samples/Makefile
samples/trace_events/Makefile
samples/trace_events/trace_custom_sched.c [new file with mode: 0644]