The trace script automates the process of enabling named sets of tracepoints and dumping the trace file over the SSH connection, then cleaning up after itself.
To run:
Usage: ./trace [USER@]HOST EVENTSET [EVENTSET...] Valid EVENTSETs: fsi, occ, sbefifo, timer, sched
To stop the trace output and disable the tracepoints, hit Return
.
For example, capturing the defined tracepoints for the sched
event set:
$ ./trace root@my-bmc sched + set -eou pipefail + set -x + EVENT_fsi='fsi fsi_master_gpio' + EVENT_occ='occ hwmon_occ' + EVENT_sbefifo=sbefifo + EVENT_timer='timer/timer_start timer/timer_cancel timer/timer_expire_entry timer/timer_expire_exit' + EVENT_sched='sched/sched_switch sched/sched_wakeup sched/sched_wakeup_new sched/sched_waking' + trap on_exit EXIT + CAT_PID=1867 + for elem in sched + eval 'trace=\${EVENT_${elem}}' ++ trace='${EVENT_sched}' ++ eval echo '${EVENT_sched}' +++ echo sched/sched_switch sched/sched_wakeup sched/sched_wakeup_new sched/sched_waking + for event in '$(eval echo ${trace})' + echo 1 + for event in '$(eval echo ${trace})' + echo 1 + for event in '$(eval echo ${trace})' + echo 1 + for event in '$(eval echo ${trace})' + echo 1 + echo 1 + read + cat /sys/kernel/debug/tracing/per_cpu/cpu0/trace_pipe sh-1866 [000] d.h. 201821.030000: sched_waking: comm=rngd pid=987 prio=120 target_cpu=000 sh-1866 [000] dnh. 201821.030000: sched_wakeup: comm=rngd pid=987 prio=120 target_cpu=000 sh-1866 [000] dn.. 201821.030000: sched_waking: comm=ksoftirqd/0 pid=6 prio=120 target_cpu=000 sh-1866 [000] dn.. 201821.030000: sched_wakeup: comm=ksoftirqd/0 pid=6 prio=120 target_cpu=000 sh-1866 [000] d... 201821.030000: sched_switch: prev_comm=sh prev_pid=1866 prev_prio=120 prev_state=R ==> next_comm=rngd next_pid=987 next_prio=120 rngd-987 [000] d... 201821.030000: sched_switch: prev_comm=rngd prev_pid=987 prev_prio=120 prev_state=S ==> next_comm=ksoftirqd/0 next_pid=6 next_prio=120 ksoftirqd/0-6 [000] d... 201821.030000: sched_switch: prev_comm=ksoftirqd/0 prev_pid=6 prev_prio=120 prev_state=S ==> next_comm=sh next_pid=1866 next_prio=120 sh-1866 [000] d.h. 201821.030000: sched_waking: comm=phosphor-hwmon- pid=1188 prio=120 target_cpu=000 sh-1866 [000] dnh. 201821.030000: sched_wakeup: comm=phosphor-hwmon- pid=1188 prio=120 target_cpu=000 sh-1866 [000] d... 201821.030000: sched_switch: prev_comm=sh prev_pid=1866 prev_prio=120 prev_state=R ==> next_comm=phosphor-hwmon- next_pid=1188 next_prio=120 phosphor-hwmon--1188 [000] d... 201821.030000: sched_switch: prev_comm=phosphor-hwmon- prev_pid=1188 prev_prio=120 prev_state=D ==> next_comm=sh next_pid=1866 next_prio=120 ... <RETURN> ... + kill 1867 + on_exit + for elem in sched + eval 'trace=\${EVENT_${elem}}' ++ trace='${EVENT_sched}' ++ eval echo '${EVENT_sched}' +++ echo sched/sched_switch sched/sched_wakeup sched/sched_wakeup_new sched/sched_waking + for event in '$(eval echo ${trace})' + echo 0 + for event in '$(eval echo ${trace})' + echo 0 + for event in '$(eval echo ${trace})' + echo 0 + for event in '$(eval echo ${trace})' + echo 0 + echo 0 + on_exit + rm -f obmc-fsi-trace.Rz15GL