1#!/bin/sh 2# SPDX-License-Identifier: GPL-2.0 3# description: Generic dynamic event - add/remove fprobe events 4# requires: dynamic_events "f[:[<group>/][<event>]] <func-name>[%return] [<args>]":README 5 6echo 0 > events/enable 7echo > dynamic_events 8 9PLACE=$FUNCTION_FORK 10PLACE2="kmem_cache_free" 11PLACE3="schedule_timeout" 12 13echo "f:myevent1 $PLACE" >> dynamic_events 14 15# Make sure the event is attached and is the only one 16grep -q $PLACE enabled_functions 17cnt=`cat enabled_functions | wc -l` 18if [ $cnt -ne 1 ]; then 19 exit_fail 20fi 21 22echo "f:myevent2 $PLACE%return" >> dynamic_events 23 24# It should till be the only attached function 25cnt=`cat enabled_functions | wc -l` 26if [ $cnt -ne 1 ]; then 27 exit_fail 28fi 29 30# add another event 31echo "f:myevent3 $PLACE2" >> dynamic_events 32 33grep -q $PLACE2 enabled_functions 34cnt=`cat enabled_functions | wc -l` 35if [ $cnt -ne 2 ]; then 36 exit_fail 37fi 38 39grep -q myevent1 dynamic_events 40grep -q myevent2 dynamic_events 41grep -q myevent3 dynamic_events 42test -d events/fprobes/myevent1 43test -d events/fprobes/myevent2 44 45echo "-:myevent2" >> dynamic_events 46 47grep -q myevent1 dynamic_events 48! grep -q myevent2 dynamic_events 49 50# should still have 2 left 51cnt=`cat enabled_functions | wc -l` 52if [ $cnt -ne 2 ]; then 53 exit_fail 54fi 55 56echo > dynamic_events 57 58# Should have none left 59cnt=`cat enabled_functions | wc -l` 60if [ $cnt -ne 0 ]; then 61 exit_fail 62fi 63 64echo "f:myevent4 $PLACE" >> dynamic_events 65 66# Should only have one enabled 67cnt=`cat enabled_functions | wc -l` 68if [ $cnt -ne 1 ]; then 69 exit_fail 70fi 71 72echo > dynamic_events 73 74# Should have none left 75cnt=`cat enabled_functions | wc -l` 76if [ $cnt -ne 0 ]; then 77 exit_fail 78fi 79 80clear_trace 81