• Tom Zanussi's avatar
    tracing: Add 'onmatch' hist trigger action support · c282a386
    Tom Zanussi authored
    Add an 'onmatch(matching.event).<synthetic_event_name>(param list)'
    hist trigger action which is invoked with the set of variables or
    event fields named in the 'param list'.  The result is the generation
    of a synthetic event that consists of the values contained in those
    variables and/or fields at the time the invoking event was hit.
    
    As an example the below defines a simple synthetic event using a
    variable defined on the sched_wakeup_new event, and shows the event
    definition with unresolved fields, since the sched_wakeup_new event
    with the testpid variable hasn't been defined yet:
    
        # echo 'wakeup_new_test pid_t pid; int prio' >> \
          /sys/kernel/debug/tracing/synthetic_events
    
        # cat /sys/kernel/debug/tracing/synthetic_events
          wakeup_new_test pid_t pid; int prio
    
    The following hist trigger both defines a testpid variable and
    specifies an onmatch() trace action that uses that variable along with
    a non-variable field to generate a wakeup_new_test synthetic event
    whenever a sched_wakeup_new event occurs, which because of the 'if
    comm == "cyclictest"' filter only happens when the executable is
    cyclictest:
    
        # echo 'hist:testpid=pid:keys=$testpid:\
          onmatch(sched.sched_wakeup_new).wakeup_new_test($testpid, prio) \
            if comm=="cyclictest"' >> \
          /sys/kernel/debug/tracing/events/sched/sched_wakeup_new/trigger
    
    Creating and displaying a histogram based on those events is now just
    a matter of using the fields and new synthetic event in the
    tracing/events/synthetic directory, as usual:
    
        # echo 'hist:keys=pid,prio:sort=pid,prio' >> \
          /sys/kernel/debug/tracing/events/synthetic/wakeup_new_test/trigger
    
    Link: http://lkml.kernel.org/r/8c2a574bcb7530c876629c901ecd23911b14afe8.1516069914.git.tom.zanussi@linux.intel.comSigned-off-by: default avatarTom Zanussi <tom.zanussi@linux.intel.com>
    Signed-off-by: default avatarRajvi Jingar <rajvi.jingar@intel.com>
    Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
    c282a386
trace_events_hist.c 117 KB