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