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>
76 lines
2.0 KiB
Bash
76 lines
2.0 KiB
Bash
#!/bin/sh
|
|
# description: event trigger - test histogram modifiers
|
|
# 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 with execname modifier"
|
|
|
|
echo 'hist:keys=common_pid.execname' > events/sched/sched_process_fork/trigger
|
|
for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
|
|
COMM=`cat /proc/$$/comm`
|
|
grep "common_pid: $COMM" events/sched/sched_process_fork/hist > /dev/null || \
|
|
fail "execname modifier on sched_process_fork did not work"
|
|
|
|
reset_trigger
|
|
|
|
echo "Test histogram with hex modifier"
|
|
|
|
echo 'hist:keys=parent_pid.hex' > events/sched/sched_process_fork/trigger
|
|
for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
|
|
# Note that $$ is the parent pid. $PID is current PID.
|
|
HEX=`printf %x $PID`
|
|
grep "parent_pid: $HEX" events/sched/sched_process_fork/hist > /dev/null || \
|
|
fail "hex modifier on sched_process_fork did not work"
|
|
|
|
reset_trigger
|
|
|
|
echo "Test histogram with syscall modifier"
|
|
|
|
echo 'hist:keys=id.syscall' > events/raw_syscalls/sys_exit/trigger
|
|
for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
|
|
grep "id: \(unknown_\|sys_\)" events/raw_syscalls/sys_exit/hist > /dev/null || \
|
|
fail "syscall modifier on raw_syscalls/sys_exit did not work"
|
|
|
|
|
|
reset_trigger
|
|
|
|
echo "Test histgram with log2 modifier"
|
|
|
|
echo 'hist:keys=bytes_req.log2' > events/kmem/kmalloc/trigger
|
|
for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
|
|
grep 'bytes_req: ~ 2^[0-9]*' events/kmem/kmalloc/hist > /dev/null || \
|
|
fail "log2 modifier on kmem/kmalloc did not work"
|
|
|
|
do_reset
|
|
|
|
exit 0
|