1 #!/bin/sh 2 # description: event tracing - enable/disable with subsystem level files 3 4 do_reset() { 5 echo > set_event 6 clear_trace 7 } 8 9 fail() { #msg 10 do_reset 11 echo $1 12 exit $FAIL 13 } 14 15 yield() { 16 ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1 17 } 18 19 if [ ! -f set_event -o ! -d events/sched ]; then 20 echo "event tracing is not supported" 21 exit_unsupported 22 fi 23 24 reset_tracer 25 do_reset 26 27 echo 'sched:*' > set_event 28 29 yield 30 31 count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l` 32 if [ $count -lt 3 ]; then 33 fail "at least fork, exec and exit events should be recorded" 34 fi 35 36 do_reset 37 38 echo 1 > events/sched/enable 39 40 yield 41 42 count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l` 43 if [ $count -lt 3 ]; then 44 fail "at least fork, exec and exit events should be recorded" 45 fi 46 47 do_reset 48 49 echo 0 > events/sched/enable 50 51 yield 52 53 count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l` 54 if [ $count -ne 0 ]; then 55 fail "any of scheduler events should not be recorded" 56 fi 57 58 do_reset 59 60 exit 0 61