[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAM9d7ci4MG1m-ebQQmGaD96ssznsmbCofz1xva2kDHygX1qStQ@mail.gmail.com>
Date: Thu, 22 Apr 2021 04:53:55 +0900
From: Namhyung Kim <namhyung@...il.com>
To: Thomas Richter <tmricht@...ux.ibm.com>
Cc: linux-kernel <linux-kernel@...r.kernel.org>,
linux-perf-users <linux-perf-users@...r.kernel.org>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
svens@...ux.ibm.com, gor@...ux.ibm.com, sumanthk@...ux.ibm.com,
hca@...ux.ibm.com, Alexander Schmidt <alexschm@...ibm.com>
Subject: Re: [PATCH] [PING] perf ftrace: Command fails on s390
Hello,
On Wed, Apr 21, 2021 at 10:03 PM Thomas Richter <tmricht@...ux.ibm.com> wrote:
>
> Command 'perf ftrace -v -- ls' fails in s390 (at least 5.12.0rc6).
>
> The root cause is a missing pointer dereference which causes an
> array element address to be used as PID.
>
> Fix this by extracting the PID.
>
> Output before:
> # ./perf ftrace -v -- ls
> function_graph tracer is used
> write '-263732416' to tracing/set_ftrace_pid failed: Invalid argument
> failed to set ftrace pid
> #
>
> Output after:
> ./perf ftrace -v -- ls
> function_graph tracer is used
> # tracer: function_graph
> #
> # CPU DURATION FUNCTION CALLS
> # | | | | | | |
> 4) | rcu_read_lock_sched_held() {
> 4) 0.552 us | rcu_lockdep_current_cpu_online();
> 4) 6.124 us | }
>
> Signed-off-by: Thomas Richter <tmricht@...ux.ibm.com>
> Reported-by: Alexander Schmidt <alexschm@...ibm.com>
Acked-by: Namhyung Kim <namhyung@...nel.org>
Thanks,
Namhyung
> ---
> tools/perf/builtin-ftrace.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/builtin-ftrace.c b/tools/perf/builtin-ftrace.c
> index d49448a1060c..87cb11a7a3ee 100644
> --- a/tools/perf/builtin-ftrace.c
> +++ b/tools/perf/builtin-ftrace.c
> @@ -289,7 +289,7 @@ static int set_tracing_pid(struct perf_ftrace *ftrace)
>
> for (i = 0; i < perf_thread_map__nr(ftrace->evlist->core.threads); i++) {
> scnprintf(buf, sizeof(buf), "%d",
> - ftrace->evlist->core.threads->map[i]);
> + perf_thread_map__pid(ftrace->evlist->core.threads, i));
> if (append_tracing_file("set_ftrace_pid", buf) < 0)
> return -1;
> }
> --
> 2.30.2
>
Powered by blists - more mailing lists