Re: [PATCH] selftests/ftrace: skip gcov symbols when picking a function to probe
flat view
From: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Date: 2026-09-26 12:31:16
Also in:
linux-kselftest, lkml
On Fri, 25 Sep 2026 16:35:41 +0300 Eva Kurchatova [off-list ref] wrote:
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.Oops, good catch! This looks good to me. Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Shuah, can you pick this fix via your selftest tree? I think this is a kind of selftest fix/improvement. Thanks,
quoted hunk ↗ jump to hunk
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
-- Masami Hiramatsu (Google) [off-list ref]