File Index
Files and directories
Sign in
FILE

instance-event.tc

File preview with syntax highlighting.

linux-6.19.14/tools/testing/selftests/ftrace/test.d/instances/instance-event.tc PLAIN TEXT
  1#!/bin/sh
  2# SPDX-License-Identifier: GPL-2.0
  3# description: Test creation and deletion of trace instances while setting an event
  4# requires: instances
  5
  6fail() { # mesg
  7    rmdir foo 2>/dev/null
  8    echo $1
  9    set -e
 10    exit_fail
 11}
 12
 13cd instances
 14
 15# we don't want to fail on error
 16set +e
 17
 18mkdir x
 19rmdir x
 20result=$?
 21
 22if [ $result -ne 0 ]; then
 23    echo "instance rmdir not supported"
 24    exit_unsupported
 25fi
 26
 27instance_slam() {
 28        while :; do
 29                mkdir foo 2> /dev/null
 30                rmdir foo 2> /dev/null
 31        done
 32}
 33
 34instance_read() {
 35        while :; do
 36                cat foo/trace 1> /dev/null 2>&1
 37        done
 38}
 39
 40instance_set() {
 41        while :; do
 42                echo 1 > foo/events/sched/sched_switch/enable
 43        done 2> /dev/null
 44}
 45
 46instance_slam &
 47p1=$!
 48echo $p1
 49
 50instance_set &
 51p2=$!
 52echo $p2
 53
 54instance_read &
 55p3=$!
 56echo $p3
 57
 58sleep 1
 59
 60kill -1 $p3
 61kill -1 $p2
 62kill -1 $p1
 63
 64echo "Wait for processes to finish"
 65wait $p1 $p2 $p3
 66echo "all processes finished, wait for cleanup"
 67sleep 1
 68
 69mkdir foo
 70ls foo > /dev/null
 71rmdir foo
 72if [ -d foo ]; then
 73        fail "foo still exists"
 74fi
 75
 76mkdir foo
 77echo "schedule:enable_event:sched:sched_switch" > foo/set_ftrace_filter
 78rmdir foo
 79if [ -d foo ]; then
 80        fail "foo still exists"
 81fi
 82if grep -q "schedule:enable_event:sched:sched_switch" ../set_ftrace_filter; then
 83	echo "Older kernel detected. Cleanup filter"
 84	echo '!schedule:enable_event:sched:sched_switch' > ../set_ftrace_filter
 85fi
 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
~/ Read-only file preview.