0001
0002
0003
0004
0005
0006 fail() {
0007 rmdir foo 2>/dev/null
0008 echo $1
0009 set -e
0010 exit_fail
0011 }
0012
0013 cd instances
0014
0015
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