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 78 79mkdir foo 80echo "schedule:enable_event:sched:sched_switch" > foo/set_ftrace_filter 81rmdir foo 82if [ -d foo ]; then 83 fail "foo still exists" 84fi 85 86 87instance_slam() { 88 while :; do 89 mkdir x 90 mkdir y 91 mkdir z 92 rmdir x 93 rmdir y 94 rmdir z 95 done 2>/dev/null 96} 97 98instance_slam & 99p1=$! 100echo $p1 101 102instance_slam & 103p2=$! 104echo $p2 105 106instance_slam & 107p3=$! 108echo $p3 109 110instance_slam & 111p4=$! 112echo $p4 113 114instance_slam & 115p5=$! 116echo $p5 117 118ls -lR >/dev/null 119sleep 1 120 121kill -1 $p1 122kill -1 $p2 123kill -1 $p3 124kill -1 $p4 125kill -1 $p5 126 127echo "Wait for processes to finish" 128wait $p1 $p2 $p3 $p4 $p5 129echo "all processes finished, wait for cleanup" 130 131mkdir x y z 132ls x y z 133rmdir x y z 134for d in x y z; do 135 if [ -d $d ]; then 136 fail "instance $d still exists" 137 fi 138done 139 140set -e 141 142exit 0 143