mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
Since the ftrace fprobe is both fgraph and ftrace based implemented, the selftest needs to be updated. This does not count the actual number of lines, but just check the differences. Link: https://lore.kernel.org/r/176295318112.431538.11780280333728368327.stgit@devnote2 Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
83 lines
1.9 KiB
Bash
83 lines
1.9 KiB
Bash
#!/bin/sh
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
# description: Generic dynamic event - add/remove fprobe events
|
|
# requires: dynamic_events "f[:[<group>/][<event>]] <func-name>[%return] [<args>]":README
|
|
|
|
echo 0 > events/enable
|
|
echo > dynamic_events
|
|
|
|
PLACE=$FUNCTION_FORK
|
|
PLACE2="kmem_cache_free"
|
|
PLACE3="schedule_timeout"
|
|
|
|
# Some functions may have BPF programs attached, therefore
|
|
# count already enabled_functions before tests start
|
|
ocnt=`cat enabled_functions | wc -l`
|
|
|
|
echo "f:myevent1 $PLACE" >> dynamic_events
|
|
|
|
echo "f:myevent2 $PLACE%return" >> dynamic_events
|
|
|
|
# add another event
|
|
echo "f:myevent3 $PLACE2" >> dynamic_events
|
|
|
|
grep -q myevent1 dynamic_events
|
|
grep -q myevent2 dynamic_events
|
|
grep -q myevent3 dynamic_events
|
|
test -d events/fprobes/myevent1
|
|
test -d events/fprobes/myevent2
|
|
|
|
echo 1 > events/fprobes/myevent1/enable
|
|
# Make sure the event is attached.
|
|
grep -q $PLACE enabled_functions
|
|
cnt=`cat enabled_functions | wc -l`
|
|
if [ $cnt -eq $ocnt ]; then
|
|
exit_fail
|
|
fi
|
|
|
|
echo 1 > events/fprobes/myevent2/enable
|
|
cnt2=`cat enabled_functions | wc -l`
|
|
|
|
echo 1 > events/fprobes/myevent3/enable
|
|
# If the function is different, the attached function should be increased
|
|
grep -q $PLACE2 enabled_functions
|
|
cnt=`cat enabled_functions | wc -l`
|
|
if [ $cnt -eq $cnt2 ]; then
|
|
exit_fail
|
|
fi
|
|
|
|
echo 0 > events/fprobes/myevent2/enable
|
|
echo "-:myevent2" >> dynamic_events
|
|
|
|
grep -q myevent1 dynamic_events
|
|
! grep -q myevent2 dynamic_events
|
|
|
|
echo 0 > events/fprobes/enable
|
|
echo > dynamic_events
|
|
|
|
# Should have none left
|
|
cnt=`cat enabled_functions | wc -l`
|
|
if [ $cnt -ne $ocnt ]; then
|
|
exit_fail
|
|
fi
|
|
|
|
echo "f:myevent4 $PLACE" >> dynamic_events
|
|
|
|
echo 1 > events/fprobes/myevent4/enable
|
|
# Should only have one enabled
|
|
cnt=`cat enabled_functions | wc -l`
|
|
if [ $cnt -ne $((ocnt + 1)) ]; then
|
|
exit_fail
|
|
fi
|
|
|
|
echo 0 > events/fprobes/enable
|
|
echo > dynamic_events
|
|
|
|
# Should have none left
|
|
cnt=`cat enabled_functions | wc -l`
|
|
if [ $cnt -ne $ocnt ]; then
|
|
exit_fail
|
|
fi
|
|
|
|
clear_trace
|