Skip to content
This repository was archived by the owner on Nov 8, 2023. It is now read-only.

Commit 0f42bdf

Browse files
mhiramatshuahkh
authored andcommitted
selftests/tracing: Fix event filter test to retry up to 10 times
Commit eb50d0f ("selftests/ftrace: Choose target function for filter test from samples") choose the target function from samples, but sometimes this test failes randomly because the target function does not hit at the next time. So retry getting samples up to 10 times. Fixes: eb50d0f ("selftests/ftrace: Choose target function for filter test from samples") Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
1 parent cb708ab commit 0f42bdf

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

tools/testing/selftests/ftrace/test.d/filter/event-filter-function.tc

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ fail() { #msg
1010
}
1111

1212
sample_events() {
13-
echo > trace
1413
echo 1 > events/kmem/kmem_cache_free/enable
1514
echo 1 > tracing_on
1615
ls > /dev/null
@@ -22,6 +21,7 @@ echo 0 > tracing_on
2221
echo 0 > events/enable
2322

2423
echo "Get the most frequently calling function"
24+
echo > trace
2525
sample_events
2626

2727
target_func=`cat trace | grep -o 'call_site=\([^+]*\)' | sed 's/call_site=//' | sort | uniq -c | sort | tail -n 1 | sed 's/^[ 0-9]*//'`
@@ -32,7 +32,16 @@ echo > trace
3232

3333
echo "Test event filter function name"
3434
echo "call_site.function == $target_func" > events/kmem/kmem_cache_free/filter
35+
36+
sample_events
37+
max_retry=10
38+
while [ `grep kmem_cache_free trace| wc -l` -eq 0 ]; do
3539
sample_events
40+
max_retry=$((max_retry - 1))
41+
if [ $max_retry -eq 0 ]; then
42+
exit_fail
43+
fi
44+
done
3645

3746
hitcnt=`grep kmem_cache_free trace| grep $target_func | wc -l`
3847
misscnt=`grep kmem_cache_free trace| grep -v $target_func | wc -l`
@@ -49,7 +58,16 @@ address=`grep " ${target_func}\$" /proc/kallsyms | cut -d' ' -f1`
4958

5059
echo "Test event filter function address"
5160
echo "call_site.function == 0x$address" > events/kmem/kmem_cache_free/filter
61+
echo > trace
62+
sample_events
63+
max_retry=10
64+
while [ `grep kmem_cache_free trace| wc -l` -eq 0 ]; do
5265
sample_events
66+
max_retry=$((max_retry - 1))
67+
if [ $max_retry -eq 0 ]; then
68+
exit_fail
69+
fi
70+
done
5371

5472
hitcnt=`grep kmem_cache_free trace| grep $target_func | wc -l`
5573
misscnt=`grep kmem_cache_free trace| grep -v $target_func | wc -l`

0 commit comments

Comments
 (0)