0001
0002
0003
0004
0005
0006
0007 do_reset() {
0008 echo > set_event
0009 echo > set_event_pid
0010 echo 0 > options/event-fork
0011 clear_trace
0012 }
0013
0014 fail() {
0015 do_reset
0016 echo $1
0017 exit_fail
0018 }
0019
0020 echo 0 > options/event-fork
0021
0022 echo 1 > events/sched/sched_switch/enable
0023
0024 yield
0025
0026 count=`cat trace | grep sched_switch | wc -l`
0027 if [ $count -eq 0 ]; then
0028 fail "sched_switch events are not recorded"
0029 fi
0030
0031 do_reset
0032
0033 read mypid rest < /proc/self/stat
0034
0035 echo $mypid > set_event_pid
0036 grep -q $mypid set_event_pid
0037 echo 'sched:sched_switch' > set_event
0038
0039 yield
0040
0041 count=`cat trace | grep sched_switch | grep -v "pid=$mypid" | wc -l`
0042 if [ $count -ne 0 ]; then
0043 fail "sched_switch events from other task are recorded"
0044 fi
0045
0046 do_reset
0047
0048 echo $mypid > set_event_pid
0049 echo 1 > options/event-fork
0050 echo 1 > events/sched/sched_switch/enable
0051
0052 yield
0053
0054 count=`cat trace | grep sched_switch | grep -v "pid=$mypid" | wc -l`
0055 if [ $count -eq 0 ]; then
0056 fail "sched_switch events from other task are not recorded"
0057 fi
0058
0059 do_reset
0060
0061 exit 0