ca2958f14c
Some of the event triggers can run fine in an instance. Have them tested in one as well. The ones that still need work are the snapshot, stacktrace and traceon/off triggers, as they don't currently pass a handle to the trace_array they are attached to. But that can be for a future project. Acked-by: Masami Hiramatsu <mhiramat@kernel.org> Acked-by: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
84 lines
2.2 KiB
Bash
84 lines
2.2 KiB
Bash
#!/bin/sh
|
|
# description: event trigger - test histogram trigger
|
|
# flags: instance
|
|
|
|
do_reset() {
|
|
reset_trigger
|
|
echo > set_event
|
|
clear_trace
|
|
}
|
|
|
|
fail() { #msg
|
|
do_reset
|
|
echo $1
|
|
exit $FAIL
|
|
}
|
|
|
|
if [ ! -f set_event -o ! -d events/sched ]; then
|
|
echo "event tracing is not supported"
|
|
exit_unsupported
|
|
fi
|
|
|
|
if [ ! -f events/sched/sched_process_fork/trigger ]; then
|
|
echo "event trigger is not supported"
|
|
exit_unsupported
|
|
fi
|
|
|
|
if [ ! -f events/sched/sched_process_fork/hist ]; then
|
|
echo "hist trigger is not supported"
|
|
exit_unsupported
|
|
fi
|
|
|
|
reset_tracer
|
|
do_reset
|
|
|
|
echo "Test histogram basic tigger"
|
|
|
|
echo 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger
|
|
for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
|
|
grep parent_pid events/sched/sched_process_fork/hist > /dev/null || \
|
|
fail "hist trigger on sched_process_fork did not work"
|
|
grep child events/sched/sched_process_fork/hist > /dev/null || \
|
|
fail "hist trigger on sched_process_fork did not work"
|
|
|
|
reset_trigger
|
|
|
|
echo "Test histogram with compound keys"
|
|
|
|
echo 'hist:keys=parent_pid,child_pid' > events/sched/sched_process_fork/trigger
|
|
for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
|
|
grep '^{ parent_pid:.*, child_pid:.*}' events/sched/sched_process_fork/hist > /dev/null || \
|
|
fail "compound keys on sched_process_fork did not work"
|
|
|
|
reset_trigger
|
|
|
|
echo "Test histogram with string key"
|
|
|
|
echo 'hist:keys=parent_comm' > events/sched/sched_process_fork/trigger
|
|
for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
|
|
COMM=`cat /proc/$$/comm`
|
|
grep "parent_comm: $COMM" events/sched/sched_process_fork/hist > /dev/null || \
|
|
fail "string key on sched_process_fork did not work"
|
|
|
|
reset_trigger
|
|
|
|
echo "Test histogram with sort key"
|
|
|
|
echo 'hist:keys=parent_pid,child_pid:sort=child_pid.ascending' > events/sched/sched_process_fork/trigger
|
|
for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
|
|
|
|
check_inc() {
|
|
while [ $# -gt 1 ]; do
|
|
[ $1 -gt $2 ] && return 1
|
|
shift 1
|
|
done
|
|
return 0
|
|
}
|
|
check_inc `grep -o "child_pid:[[:space:]]*[[:digit:]]*" \
|
|
events/sched/sched_process_fork/hist | cut -d: -f2 ` ||
|
|
fail "sort param on sched_process_fork did not work"
|
|
|
|
do_reset
|
|
|
|
exit 0
|