With synthetic events now a separate config item as a result of 'tracing: Move synthetic events to a separate file', tests that use both need to explicitly check for hist trigger support rather than relying on hist triggers to pull in synthetic events. Add an additional hist trigger check to all the trigger tests that now require it, otherwise they'll fail if synthetic events but not hist triggers are enabled. Link: http://lkml.kernel.org/r/af36c539006ef2768114b4ed38e6b054f7c7a3bd.1590693308.git.zanussi@kernel.org Acked-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Tom Zanussi <zanussi@kernel.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
52 lines
1.9 KiB
Bash
52 lines
1.9 KiB
Bash
#!/bin/sh
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
# description: event trigger - test inter-event combined histogram trigger
|
|
|
|
fail() { #msg
|
|
echo $1
|
|
exit_fail
|
|
}
|
|
|
|
if [ ! -f set_event ]; then
|
|
echo "event tracing is not supported"
|
|
exit_unsupported
|
|
fi
|
|
|
|
if [ ! -f synthetic_events ]; then
|
|
echo "synthetic event is not supported"
|
|
exit_unsupported
|
|
fi
|
|
|
|
if [ ! -f events/sched/sched_process_fork/hist ]; then
|
|
echo "hist trigger is not supported"
|
|
exit_unsupported
|
|
fi
|
|
|
|
echo "Test create synthetic event"
|
|
|
|
echo 'waking_latency u64 lat pid_t pid' > synthetic_events
|
|
if [ ! -d events/synthetic/waking_latency ]; then
|
|
fail "Failed to create waking_latency synthetic event"
|
|
fi
|
|
|
|
echo "Test combined histogram"
|
|
|
|
echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' > events/sched/sched_waking/trigger
|
|
echo 'hist:keys=pid:waking_lat=common_timestamp.usecs-$ts0:onmatch(sched.sched_waking).waking_latency($waking_lat,pid) if comm=="ping"' > events/sched/sched_wakeup/trigger
|
|
echo 'hist:keys=pid,lat:sort=pid,lat' > events/synthetic/waking_latency/trigger
|
|
|
|
echo 'wakeup_latency u64 lat pid_t pid' >> synthetic_events
|
|
echo 'hist:keys=pid:ts1=common_timestamp.usecs if comm=="ping"' >> events/sched/sched_wakeup/trigger
|
|
echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts1:onmatch(sched.sched_wakeup).wakeup_latency($wakeup_lat,next_pid) if next_comm=="ping"' > events/sched/sched_switch/trigger
|
|
|
|
echo 'waking+wakeup_latency u64 lat; pid_t pid' >> synthetic_events
|
|
echo 'hist:keys=pid,lat:sort=pid,lat:ww_lat=$waking_lat+$wakeup_lat:onmatch(synthetic.wakeup_latency).waking+wakeup_latency($ww_lat,pid)' >> events/synthetic/wakeup_latency/trigger
|
|
echo 'hist:keys=pid,lat:sort=pid,lat' >> events/synthetic/waking+wakeup_latency/trigger
|
|
|
|
ping $LOCALHOST -c 3
|
|
if ! grep -q "pid:" events/synthetic/waking+wakeup_latency/hist; then
|
|
fail "Failed to create combined histogram"
|
|
fi
|
|
|
|
exit 0
|