Message ID | 20240408175140.60223-1-thinker.li@gmail.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | [v2] rethook: Remove warning messages printed for finding return address of a frame. | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
On Mon, 8 Apr 2024 10:51:40 -0700 Kui-Feng Lee <thinker.li@gmail.com> wrote: > 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. > OK, looks good to me. Let me pick it to probes/for-next. Thanks! > 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> > > --- > Changes from v1: > > - Rephrased the commit log. > > - Removed the confusing last part of the first paragraph. > > - Removed "frequently" from the 2nd paragraph, replaced by "a firm with > a large number of hosts". > > v1: https://lore.kernel.org/all/20240401191621.758056-1-thinker.li@gmail.com/ > --- > kernel/trace/rethook.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/trace/rethook.c b/kernel/trace/rethook.c > index fa03094e9e69..4297a132a7ae 100644 > --- a/kernel/trace/rethook.c > +++ b/kernel/trace/rethook.c > @@ -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 { > -- > 2.34.1 >
diff --git a/kernel/trace/rethook.c b/kernel/trace/rethook.c index fa03094e9e69..4297a132a7ae 100644 --- a/kernel/trace/rethook.c +++ b/kernel/trace/rethook.c @@ -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 {