Re: [PATCH] function_graph: remove unnecessary initialization in ftrace_graph_ret_addr()

From: Steven Rostedt
Date: Mon Sep 16 2024 - 12:39:38 EST


On Mon, 16 Sep 2024 15:56:43 +0200
Oleg Nesterov <oleg@xxxxxxxxxx> wrote:

> After the commit 29c1c24a2707 ("function_graph: Fix up ftrace_graph_ret_addr()")
> ftrace_graph_ret_addr() doesn't need to initialize "int i" at the start.
>
> While at it, move the declaration of "ret_stack" into the main loop.

Should not make two changes like this, because it risks the entire
patch being denied.


>
> Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
> ---
> kernel/trace/fgraph.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/kernel/trace/fgraph.c b/kernel/trace/fgraph.c
> index d7d4fb403f6f..d45a8bc97997 100644
> --- a/kernel/trace/fgraph.c
> +++ b/kernel/trace/fgraph.c
> @@ -890,9 +890,8 @@ ftrace_graph_get_ret_stack(struct task_struct *task, int idx)
> unsigned long ftrace_graph_ret_addr(struct task_struct *task, int *idx,
> unsigned long ret, unsigned long *retp)
> {
> - struct ftrace_ret_stack *ret_stack;
> unsigned long return_handler = (unsigned long)dereference_kernel_function_descriptor(return_to_handler);
> - int i = task->curr_ret_stack;
> + int i;

I'm fine with removing the unneeded init of i.

>
> if (ret != return_handler)
> return ret;
> @@ -902,7 +901,7 @@ unsigned long ftrace_graph_ret_addr(struct task_struct *task, int *idx,
>
> i = *idx ? : task->curr_ret_stack;
> while (i > 0) {
> - ret_stack = get_ret_stack(task, i, &i);
> + struct ftrace_ret_stack *ret_stack = get_ret_stack(task, i, &i);

This is just a preference. Sometimes I like the declaration up on top,
sometimes in the block it used. But this case, I wont it at top.

Please make a v2 with just the change to i.

-- Steve


> if (!ret_stack)
> break;
> /*