Back to home page

OSCL-LXR

 
 

    


0001 #!/bin/sh
0002 # SPDX-License-Identifier: GPL-2.0
0003 # description: Test creation and deletion of trace instances while setting an event
0004 # requires: instances
0005 
0006 fail() { # mesg
0007     rmdir foo 2>/dev/null
0008     echo $1
0009     set -e
0010     exit_fail
0011 }
0012 
0013 cd instances
0014 
0015 # we don't want to fail on error
0016 set +e
0017 
0018 mkdir x
0019 rmdir x
0020 result=$?
0021 
0022 if [ $result -ne 0 ]; then
0023     echo "instance rmdir not supported"
0024     exit_unsupported
0025 fi
0026 
0027 instance_slam() {
0028         while :; do
0029                 mkdir foo 2> /dev/null
0030                 rmdir foo 2> /dev/null
0031         done
0032 }
0033 
0034 instance_read() {
0035         while :; do
0036                 cat foo/trace 1> /dev/null 2>&1
0037         done
0038 }
0039 
0040 instance_set() {
0041         while :; do
0042                 echo 1 > foo/events/sched/sched_switch
0043         done 2> /dev/null
0044 }
0045 
0046 instance_slam &
0047 p1=$!
0048 echo $p1
0049 
0050 instance_set &
0051 p2=$!
0052 echo $p2
0053 
0054 instance_read &
0055 p3=$!
0056 echo $p3
0057 
0058 sleep 1
0059 
0060 kill -1 $p3
0061 kill -1 $p2
0062 kill -1 $p1
0063 
0064 echo "Wait for processes to finish"
0065 wait $p1 $p2 $p3
0066 echo "all processes finished, wait for cleanup"
0067 sleep 1
0068 
0069 mkdir foo
0070 ls foo > /dev/null
0071 rmdir foo
0072 if [ -d foo ]; then
0073         fail "foo still exists"
0074 fi
0075 
0076 mkdir foo
0077 echo "schedule:enable_event:sched:sched_switch" > foo/set_ftrace_filter
0078 rmdir foo
0079 if [ -d foo ]; then
0080         fail "foo still exists"
0081 fi
0082 if grep -q "schedule:enable_event:sched:sched_switch" ../set_ftrace_filter; then
0083         echo "Older kernel detected. Cleanup filter"
0084         echo '!schedule:enable_event:sched:sched_switch' > ../set_ftrace_filter
0085 fi
0086 
0087 instance_slam() {
0088     while :; do
0089         mkdir x
0090         mkdir y
0091         mkdir z
0092         rmdir x
0093         rmdir y
0094         rmdir z
0095     done 2>/dev/null
0096 }
0097 
0098 instance_slam &
0099 p1=$!
0100 echo $p1
0101 
0102 instance_slam &
0103 p2=$!
0104 echo $p2
0105 
0106 instance_slam &
0107 p3=$!
0108 echo $p3
0109 
0110 instance_slam &
0111 p4=$!
0112 echo $p4
0113 
0114 instance_slam &
0115 p5=$!
0116 echo $p5
0117 
0118 ls -lR >/dev/null
0119 sleep 1
0120 
0121 kill -1 $p1
0122 kill -1 $p2
0123 kill -1 $p3
0124 kill -1 $p4
0125 kill -1 $p5
0126 
0127 echo "Wait for processes to finish"
0128 wait $p1 $p2 $p3 $p4 $p5
0129 echo "all processes finished, wait for cleanup"
0130 
0131 mkdir x y z
0132 ls x y z
0133 rmdir x y z
0134 for d in x y z; do
0135         if [ -d $d ]; then
0136                 fail "instance $d still exists"
0137         fi
0138 done
0139 
0140 set -e
0141 
0142 exit 0