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