Skip to content

Commit 5f7a15a

Browse files
rostedtgregkh
authored andcommitted
ftrace/selftest: Have the reset_trigger code be a bit more careful
commit 756b56a upstream. The trigger code is picky in how it can be disabled as there may be dependencies between different events and synthetic events. Change the order on how triggers are reset. 1) Reset triggers of all synthetic events first 2) Remove triggers with actions attached to them 3) Remove all other triggers If this order isn't followed, then some triggers will not be reset, and an error may happen because a trigger is busy. Cc: [email protected] Fixes: cfa0963 ("kselftests/ftrace : Add event trigger testcases") Reviewed-by: Namhyung Kim <[email protected]> Acked-by: Masami Hiramatsu <[email protected]> Signed-off-by: Steven Rostedt (VMware) <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent ea0ac01 commit 5f7a15a

File tree

1 file changed

+18
-3
lines changed
  • tools/testing/selftests/ftrace/test.d

1 file changed

+18
-3
lines changed

tools/testing/selftests/ftrace/test.d/functions

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,29 @@ reset_tracer() { # reset the current tracer
1515
echo nop > current_tracer
1616
}
1717

18-
reset_trigger() { # reset all current setting triggers
19-
grep -v ^# events/*/*/trigger |
18+
reset_trigger_file() {
19+
# remove action triggers first
20+
grep -H ':on[^:]*(' $@ |
21+
while read line; do
22+
cmd=`echo $line | cut -f2- -d: | cut -f1 -d" "`
23+
file=`echo $line | cut -f1 -d:`
24+
echo "!$cmd" >> $file
25+
done
26+
grep -Hv ^# $@ |
2027
while read line; do
2128
cmd=`echo $line | cut -f2- -d: | cut -f1 -d" "`
22-
echo "!$cmd" > `echo $line | cut -f1 -d:`
29+
file=`echo $line | cut -f1 -d:`
30+
echo "!$cmd" > $file
2331
done
2432
}
2533

34+
reset_trigger() { # reset all current setting triggers
35+
if [ -d events/synthetic ]; then
36+
reset_trigger_file events/synthetic/*/trigger
37+
fi
38+
reset_trigger_file events/*/*/trigger
39+
}
40+
2641
reset_events_filter() { # reset all current setting filters
2742
grep -v ^none events/*/*/filter |
2843
while read line; do

0 commit comments

Comments
 (0)