Current event/toplevel-enable.tc checking the trace buffer by dumping all events while recording events. However, this makes system very busy. To reduce this overhead comes from reading trace buffer and recording trace buffer, use head instead of cat and stop tracing while reading. Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
64 lines
960 B
Bash
64 lines
960 B
Bash
#!/bin/sh
|
|
# description: event tracing - enable/disable with top level files
|
|
|
|
do_reset() {
|
|
echo > set_event
|
|
clear_trace
|
|
}
|
|
|
|
fail() { #msg
|
|
do_reset
|
|
echo $1
|
|
exit $FAIL
|
|
}
|
|
|
|
yield() {
|
|
ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
|
|
}
|
|
|
|
if [ ! -f available_events -o ! -f set_event -o ! -d events ]; then
|
|
echo "event tracing is not supported"
|
|
exit_unsupported
|
|
fi
|
|
|
|
reset_tracer
|
|
do_reset
|
|
|
|
echo '*:*' > set_event
|
|
|
|
yield
|
|
|
|
echo 0 > tracing_on
|
|
|
|
count=`head -n 128 trace | grep -v ^# | wc -l`
|
|
if [ $count -eq 0 ]; then
|
|
fail "none of events are recorded"
|
|
fi
|
|
|
|
do_reset
|
|
|
|
echo 1 > events/enable
|
|
echo 1 > tracing_on
|
|
|
|
yield
|
|
|
|
echo 0 > tracing_on
|
|
count=`head -n 128 trace | grep -v ^# | wc -l`
|
|
if [ $count -eq 0 ]; then
|
|
fail "none of events are recorded"
|
|
fi
|
|
|
|
do_reset
|
|
|
|
echo 0 > events/enable
|
|
|
|
yield
|
|
|
|
count=`cat trace | grep -v ^# | wc -l`
|
|
if [ $count -ne 0 ]; then
|
|
fail "any of events should not be recorded"
|
|
fi
|
|
|
|
do_reset
|
|
|
|
exit 0
|