1#!/bin/sh 2# description: Test creation and deletion of trace instances while setting an event 3 4if [ ! -d instances ] ; then 5 echo "no instance directory with this kernel" 6 exit_unsupported; 7fi 8 9fail() { # mesg 10 rmdir foo 2>/dev/null 11 echo $1 12 set -e 13 exit $FAIL 14} 15 16cd instances 17 18# we don't want to fail on error 19set +e 20 21mkdir x 22rmdir x 23result=$? 24 25if [ $result -ne 0 ]; then 26 echo "instance rmdir not supported" 27 exit_unsupported 28fi 29 30instance_slam() { 31 while :; do 32 mkdir foo 2> /dev/null 33 rmdir foo 2> /dev/null 34 done 35} 36 37instance_read() { 38 while :; do 39 cat foo/trace 1> /dev/null 2>&1 40 done 41} 42 43instance_set() { 44 while :; do 45 echo 1 > foo/events/sched/sched_switch 46 done 2> /dev/null 47} 48 49instance_slam & 50p1=$! 51echo $p1 52 53instance_set & 54p2=$! 55echo $p2 56 57instance_read & 58p3=$! 59echo $p3 60 61sleep 1 62 63kill -1 $p3 64kill -1 $p2 65kill -1 $p1 66 67echo "Wait for processes to finish" 68wait $p1 $p2 $p3 69echo "all processes finished, wait for cleanup" 70sleep 1 71 72mkdir foo 73ls foo > /dev/null 74rmdir foo 75if [ -d foo ]; then 76 fail "foo still exists" 77fi 78exit 0 79 80 81 82 83instance_slam() { 84 while :; do 85 mkdir x 86 mkdir y 87 mkdir z 88 rmdir x 89 rmdir y 90 rmdir z 91 done 2>/dev/null 92} 93 94instance_slam & 95p1=$! 96echo $p1 97 98instance_slam & 99p2=$! 100echo $p2 101 102instance_slam & 103p3=$! 104echo $p3 105 106instance_slam & 107p4=$! 108echo $p4 109 110instance_slam & 111p5=$! 112echo $p5 113 114ls -lR >/dev/null 115sleep 1 116 117kill -1 $p1 118kill -1 $p2 119kill -1 $p3 120kill -1 $p4 121kill -1 $p5 122 123echo "Wait for processes to finish" 124wait $p1 $p2 $p3 $p4 $p5 125echo "all processes finished, wait for cleanup" 126 127mkdir x y z 128ls x y z 129rmdir x y z 130for d in x y z; do 131 if [ -d $d ]; then 132 fail "instance $d still exists" 133 fi 134done 135 136set -e 137 138exit 0 139