On Fri, 25 Sep 2026 16:35:41 +0300
Eva Kurchatova <[email protected]> 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) <[email protected]>

Shuah, can you pick this fix via your selftest tree? I think this is a
kind of selftest fix/improvement.

Thanks,

> Signed-off-by: Eva Kurchatova <[email protected]>
> ---
>  .../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) <[email protected]>

Reply via email to