Back to home page

OSCL-LXR

 
 

    


0001 #!/bin/sh
0002 # SPDX-License-Identifier: GPL-2.0
0003 # description: event tracing - restricts events based on pid
0004 # requires: set_event set_event_pid events/sched
0005 # flags: instance
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() { #msg
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