• Steven Rostedt's avatar
    tracing: add subsystem level to trace events · 6ecc2d1c
    Steven Rostedt authored
    If a trace point header defines TRACE_SYSTEM, then it will add the
    following trace points into that event system.
    
    If include/trace/irq_event_types.h has:
    
     #define TRACE_SYSTEM irq
    
    at the top and
    
     #undef TRACE_SYSTEM
    
    at the bottom, then a directory "irq" will be created in the
    /debug/tracing/events directory. Inside that directory will contain the
    two trace points that are defined in include/trace/irq_event_types.h.
    
    Only adding the above to irq and not to sched, we get:
    
     # ls /debug/tracing/events/
    irq                     sched_process_exit  sched_signal_send  sched_wakeup_new
    sched_kthread_stop      sched_process_fork  sched_switch
    sched_kthread_stop_ret  sched_process_free  sched_wait_task
    sched_migrate_task      sched_process_wait  sched_wakeup
    
     # ls /debug/tracing/events/irq
    irq_handler_entry  irq_handler_exit
    
    If we add #define TRACE_SYSTEM sched to the trace/sched_event_types.h
    then the rest of the trace events will be put in a sched directory
    within the events directory.
    
    I've been playing with this idea of the subsystem for a while, but
    recently Tom Zanussi posted some patches to lkml that included this
    method. Tom's approach was clean and got me to finally put some effort
    to clean up the event trace points.
    
    Thanks to Tom Zanussi for demonstrating how nice the subsystem
    method is.
    Signed-off-by: default avatarSteven Rostedt <srostedt@redhat.com>
    6ecc2d1c
trace_events.h 1.47 KB