Thread (3 messages) 3 messages, 3 authors, 5d ago

[PATCH] selftests/ftrace: skip gcov symbols when picking a function to probe

COOLING5d IN LINUX-NEXT

From: Eva Kurchatova <hidden>
Date: 2026-09-25 13:36:07
Also in: linux-kselftest, lkml
Subsystem: kernel selftest framework, the rest, tracing · Maintainers: Shuah Khan, Shuah Khan, Linus Torvalds, Steven Rostedt, Masami Hiramatsu

Queued in linux-next as 30af56a227e2 on 2026-09-26.

kprobe_eventname.tc takes the last kallsyms entry whose name ends in
vfs_read and puts a probe on it. On a kernel built with
CONFIG_GCOV_PROFILE_ALL=y the counter symbol gcc emits for the function
sorts after it:

  ffffffff819bd1e0 T vfs_read
  ffffffff845013e0 t __gcov_.vfs_read

so the test picks __gcov_.vfs_read, which is not a function entry, and
the write fails:

  kprobe_eventname.tc: line 10: echo: write error: Invalid argument

Leave those symbols out of the choice. The test then picks vfs_read and
passes; without a coverage build nothing changes, as no such symbol
exists there.

This is the same class of problem as commit 23a4b108accc
("tracing/selftests: Fix kprobe event name test for .isra. functions"),
where a compiler-generated symbol was picked instead of a real function.

Signed-off-by: Eva Kurchatova <redacted>
---
 .../testing/selftests/ftrace/test.d/kprobe/kprobe_eventname.tc  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_eventname.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_eventname.tc
index ba19b81cef39..0688a5c47d1e 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_eventname.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_eventname.tc
@@ -5,7 +5,7 @@
 
 :;: "Add an event on function without name" ;:
 
-FUNC=`grep " [tT] .*vfs_read$" /proc/kallsyms | tail -n 1 | cut -f 3 -d " "`
+FUNC=`grep " [tT] .*vfs_read$" /proc/kallsyms | grep -v __gcov | tail -n 1 | cut -f 3 -d " "`
 [ "x" != "x$FUNC" ] || exit_unresolved
 echo "p $FUNC" > kprobe_events
 PROBE_NAME=`echo $FUNC | tr ".:" "_"`
-- 
2.55.0
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help