143 lines · plain
1#!/bin/sh2# SPDX-License-Identifier: GPL-2.03# description: Test creation and deletion of trace instances while setting an event4# requires: instances5 6fail() { # mesg7 rmdir foo 2>/dev/null8 echo $19 set -e10 exit_fail11}12 13cd instances14 15# we don't want to fail on error16set +e17 18mkdir x19rmdir x20result=$?21 22if [ $result -ne 0 ]; then23 echo "instance rmdir not supported"24 exit_unsupported25fi26 27instance_slam() {28 while :; do29 mkdir foo 2> /dev/null30 rmdir foo 2> /dev/null31 done32}33 34instance_read() {35 while :; do36 cat foo/trace 1> /dev/null 2>&137 done38}39 40instance_set() {41 while :; do42 echo 1 > foo/events/sched/sched_switch/enable43 done 2> /dev/null44}45 46instance_slam &47p1=$!48echo $p149 50instance_set &51p2=$!52echo $p253 54instance_read &55p3=$!56echo $p357 58sleep 159 60kill -1 $p361kill -1 $p262kill -1 $p163 64echo "Wait for processes to finish"65wait $p1 $p2 $p366echo "all processes finished, wait for cleanup"67sleep 168 69mkdir foo70ls foo > /dev/null71rmdir foo72if [ -d foo ]; then73 fail "foo still exists"74fi75 76mkdir foo77echo "schedule:enable_event:sched:sched_switch" > foo/set_ftrace_filter78rmdir foo79if [ -d foo ]; then80 fail "foo still exists"81fi82if grep -q "schedule:enable_event:sched:sched_switch" ../set_ftrace_filter; then83 echo "Older kernel detected. Cleanup filter"84 echo '!schedule:enable_event:sched:sched_switch' > ../set_ftrace_filter85fi86 87instance_slam() {88 while :; do89 mkdir x90 mkdir y91 mkdir z92 rmdir x93 rmdir y94 rmdir z95 done 2>/dev/null96}97 98instance_slam &99p1=$!100echo $p1101 102instance_slam &103p2=$!104echo $p2105 106instance_slam &107p3=$!108echo $p3109 110instance_slam &111p4=$!112echo $p4113 114instance_slam &115p5=$!116echo $p5117 118ls -lR >/dev/null119sleep 1120 121kill -1 $p1122kill -1 $p2123kill -1 $p3124kill -1 $p4125kill -1 $p5126 127echo "Wait for processes to finish"128wait $p1 $p2 $p3 $p4 $p5129echo "all processes finished, wait for cleanup"130 131mkdir x y z132ls x y z133rmdir x y z134for d in x y z; do135 if [ -d $d ]; then136 fail "instance $d still exists"137 fi138done139 140set -e141 142exit 0143