rethook: Remove warning messages printed for finding return address of a frame.
authorKui-Feng Lee <thinker.li@gmail.com>
Mon, 8 Apr 2024 17:51:40 +0000 (10:51 -0700)
committerMasami Hiramatsu (Google) <mhiramat@kernel.org>
Wed, 1 May 2024 14:18:47 +0000 (23:18 +0900)
The function rethook_find_ret_addr() prints a warning message and returns 0
when the target task is running and is not the "current" task in order to
prevent the incorrect return address, although it still may return an
incorrect address.

However, the warning message turns into noise when BPF profiling programs
call bpf_get_task_stack() on running tasks in a firm with a large number of
hosts.

The callers should be aware and willing to take the risk of receiving an
incorrect return address from a task that is currently running other than
the "current" one. A warning is not needed here as the callers are intent
on it.

Link: https://lore.kernel.org/all/20240408175140.60223-1-thinker.li@gmail.com/
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Kui-Feng Lee <thinker.li@gmail.com>
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
kernel/trace/rethook.c

index fa03094e9e6981b8211eb3bc050dea8678c02c1b..4297a132a7ae213eb3ec0160fac8eb262f41482b 100644 (file)
@@ -248,7 +248,7 @@ unsigned long rethook_find_ret_addr(struct task_struct *tsk, unsigned long frame
        if (WARN_ON_ONCE(!cur))
                return 0;
 
-       if (WARN_ON_ONCE(tsk != current && task_is_running(tsk)))
+       if (tsk != current && task_is_running(tsk))
                return 0;
 
        do {