191e6f1ceSSteven Rostedt (Red Hat)#!/bin/sh 2b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 391e6f1ceSSteven Rostedt (Red Hat)# description: Test creation and deletion of trace instances while setting an event 43591e90fSMasami Hiramatsu# requires: instances 591e6f1ceSSteven Rostedt (Red Hat) 691e6f1ceSSteven Rostedt (Red Hat)fail() { # mesg 791e6f1ceSSteven Rostedt (Red Hat) rmdir foo 2>/dev/null 891e6f1ceSSteven Rostedt (Red Hat) echo $1 991e6f1ceSSteven Rostedt (Red Hat) set -e 1042534b1fSMasami Hiramatsu exit_fail 1191e6f1ceSSteven Rostedt (Red Hat)} 1291e6f1ceSSteven Rostedt (Red Hat) 1391e6f1ceSSteven Rostedt (Red Hat)cd instances 1491e6f1ceSSteven Rostedt (Red Hat) 1591e6f1ceSSteven Rostedt (Red Hat)# we don't want to fail on error 1691e6f1ceSSteven Rostedt (Red Hat)set +e 1791e6f1ceSSteven Rostedt (Red Hat) 1891e6f1ceSSteven Rostedt (Red Hat)mkdir x 1991e6f1ceSSteven Rostedt (Red Hat)rmdir x 2091e6f1ceSSteven Rostedt (Red Hat)result=$? 2191e6f1ceSSteven Rostedt (Red Hat) 2291e6f1ceSSteven Rostedt (Red Hat)if [ $result -ne 0 ]; then 2391e6f1ceSSteven Rostedt (Red Hat) echo "instance rmdir not supported" 2491e6f1ceSSteven Rostedt (Red Hat) exit_unsupported 2591e6f1ceSSteven Rostedt (Red Hat)fi 2691e6f1ceSSteven Rostedt (Red Hat) 2791e6f1ceSSteven Rostedt (Red Hat)instance_slam() { 2891e6f1ceSSteven Rostedt (Red Hat) while :; do 2991e6f1ceSSteven Rostedt (Red Hat) mkdir foo 2> /dev/null 3091e6f1ceSSteven Rostedt (Red Hat) rmdir foo 2> /dev/null 3191e6f1ceSSteven Rostedt (Red Hat) done 3291e6f1ceSSteven Rostedt (Red Hat)} 3391e6f1ceSSteven Rostedt (Red Hat) 3491e6f1ceSSteven Rostedt (Red Hat)instance_read() { 3591e6f1ceSSteven Rostedt (Red Hat) while :; do 3691e6f1ceSSteven Rostedt (Red Hat) cat foo/trace 1> /dev/null 2>&1 3791e6f1ceSSteven Rostedt (Red Hat) done 3891e6f1ceSSteven Rostedt (Red Hat)} 3991e6f1ceSSteven Rostedt (Red Hat) 4091e6f1ceSSteven Rostedt (Red Hat)instance_set() { 4191e6f1ceSSteven Rostedt (Red Hat) while :; do 42*f4e4ada5SZheng Yejian echo 1 > foo/events/sched/sched_switch/enable 4391e6f1ceSSteven Rostedt (Red Hat) done 2> /dev/null 4491e6f1ceSSteven Rostedt (Red Hat)} 4591e6f1ceSSteven Rostedt (Red Hat) 4691e6f1ceSSteven Rostedt (Red Hat)instance_slam & 4791e6f1ceSSteven Rostedt (Red Hat)p1=$! 4891e6f1ceSSteven Rostedt (Red Hat)echo $p1 4991e6f1ceSSteven Rostedt (Red Hat) 5091e6f1ceSSteven Rostedt (Red Hat)instance_set & 5191e6f1ceSSteven Rostedt (Red Hat)p2=$! 5291e6f1ceSSteven Rostedt (Red Hat)echo $p2 5391e6f1ceSSteven Rostedt (Red Hat) 5491e6f1ceSSteven Rostedt (Red Hat)instance_read & 5591e6f1ceSSteven Rostedt (Red Hat)p3=$! 5691e6f1ceSSteven Rostedt (Red Hat)echo $p3 5791e6f1ceSSteven Rostedt (Red Hat) 5891e6f1ceSSteven Rostedt (Red Hat)sleep 1 5991e6f1ceSSteven Rostedt (Red Hat) 6091e6f1ceSSteven Rostedt (Red Hat)kill -1 $p3 6191e6f1ceSSteven Rostedt (Red Hat)kill -1 $p2 6291e6f1ceSSteven Rostedt (Red Hat)kill -1 $p1 6391e6f1ceSSteven Rostedt (Red Hat) 6491e6f1ceSSteven Rostedt (Red Hat)echo "Wait for processes to finish" 6591e6f1ceSSteven Rostedt (Red Hat)wait $p1 $p2 $p3 6691e6f1ceSSteven Rostedt (Red Hat)echo "all processes finished, wait for cleanup" 6791e6f1ceSSteven Rostedt (Red Hat)sleep 1 6891e6f1ceSSteven Rostedt (Red Hat) 6991e6f1ceSSteven Rostedt (Red Hat)mkdir foo 7091e6f1ceSSteven Rostedt (Red Hat)ls foo > /dev/null 7191e6f1ceSSteven Rostedt (Red Hat)rmdir foo 7291e6f1ceSSteven Rostedt (Red Hat)if [ -d foo ]; then 7391e6f1ceSSteven Rostedt (Red Hat) fail "foo still exists" 7491e6f1ceSSteven Rostedt (Red Hat)fi 7591e6f1ceSSteven Rostedt (Red Hat) 76b172296bSNaveen N. Raomkdir foo 77b172296bSNaveen N. Raoecho "schedule:enable_event:sched:sched_switch" > foo/set_ftrace_filter 78b172296bSNaveen N. Raormdir foo 79b172296bSNaveen N. Raoif [ -d foo ]; then 80b172296bSNaveen N. Rao fail "foo still exists" 81b172296bSNaveen N. Raofi 82d7b91c0bSMasami Hiramatsuif grep -q "schedule:enable_event:sched:sched_switch" ../set_ftrace_filter; then 83d7b91c0bSMasami Hiramatsu echo "Older kernel detected. Cleanup filter" 84d7b91c0bSMasami Hiramatsu echo '!schedule:enable_event:sched:sched_switch' > ../set_ftrace_filter 85d7b91c0bSMasami Hiramatsufi 8691e6f1ceSSteven Rostedt (Red Hat) 8791e6f1ceSSteven Rostedt (Red Hat)instance_slam() { 8891e6f1ceSSteven Rostedt (Red Hat) while :; do 8991e6f1ceSSteven Rostedt (Red Hat) mkdir x 9091e6f1ceSSteven Rostedt (Red Hat) mkdir y 9191e6f1ceSSteven Rostedt (Red Hat) mkdir z 9291e6f1ceSSteven Rostedt (Red Hat) rmdir x 9391e6f1ceSSteven Rostedt (Red Hat) rmdir y 9491e6f1ceSSteven Rostedt (Red Hat) rmdir z 9591e6f1ceSSteven Rostedt (Red Hat) done 2>/dev/null 9691e6f1ceSSteven Rostedt (Red Hat)} 9791e6f1ceSSteven Rostedt (Red Hat) 9891e6f1ceSSteven Rostedt (Red Hat)instance_slam & 9997f8827aSSteven Rostedt (Red Hat)p1=$! 10091e6f1ceSSteven Rostedt (Red Hat)echo $p1 10191e6f1ceSSteven Rostedt (Red Hat) 10291e6f1ceSSteven Rostedt (Red Hat)instance_slam & 10397f8827aSSteven Rostedt (Red Hat)p2=$! 10491e6f1ceSSteven Rostedt (Red Hat)echo $p2 10591e6f1ceSSteven Rostedt (Red Hat) 10691e6f1ceSSteven Rostedt (Red Hat)instance_slam & 10797f8827aSSteven Rostedt (Red Hat)p3=$! 10891e6f1ceSSteven Rostedt (Red Hat)echo $p3 10991e6f1ceSSteven Rostedt (Red Hat) 11091e6f1ceSSteven Rostedt (Red Hat)instance_slam & 11197f8827aSSteven Rostedt (Red Hat)p4=$! 11291e6f1ceSSteven Rostedt (Red Hat)echo $p4 11391e6f1ceSSteven Rostedt (Red Hat) 11491e6f1ceSSteven Rostedt (Red Hat)instance_slam & 11597f8827aSSteven Rostedt (Red Hat)p5=$! 11691e6f1ceSSteven Rostedt (Red Hat)echo $p5 11791e6f1ceSSteven Rostedt (Red Hat) 11891e6f1ceSSteven Rostedt (Red Hat)ls -lR >/dev/null 11991e6f1ceSSteven Rostedt (Red Hat)sleep 1 12091e6f1ceSSteven Rostedt (Red Hat) 12191e6f1ceSSteven Rostedt (Red Hat)kill -1 $p1 12291e6f1ceSSteven Rostedt (Red Hat)kill -1 $p2 12391e6f1ceSSteven Rostedt (Red Hat)kill -1 $p3 12491e6f1ceSSteven Rostedt (Red Hat)kill -1 $p4 12591e6f1ceSSteven Rostedt (Red Hat)kill -1 $p5 12691e6f1ceSSteven Rostedt (Red Hat) 12791e6f1ceSSteven Rostedt (Red Hat)echo "Wait for processes to finish" 12891e6f1ceSSteven Rostedt (Red Hat)wait $p1 $p2 $p3 $p4 $p5 12991e6f1ceSSteven Rostedt (Red Hat)echo "all processes finished, wait for cleanup" 13091e6f1ceSSteven Rostedt (Red Hat) 13191e6f1ceSSteven Rostedt (Red Hat)mkdir x y z 13291e6f1ceSSteven Rostedt (Red Hat)ls x y z 13391e6f1ceSSteven Rostedt (Red Hat)rmdir x y z 13491e6f1ceSSteven Rostedt (Red Hat)for d in x y z; do 13591e6f1ceSSteven Rostedt (Red Hat) if [ -d $d ]; then 13691e6f1ceSSteven Rostedt (Red Hat) fail "instance $d still exists" 13791e6f1ceSSteven Rostedt (Red Hat) fi 13891e6f1ceSSteven Rostedt (Red Hat)done 13991e6f1ceSSteven Rostedt (Red Hat) 14091e6f1ceSSteven Rostedt (Red Hat)set -e 14191e6f1ceSSteven Rostedt (Red Hat) 14291e6f1ceSSteven Rostedt (Red Hat)exit 0 143