Messages in this thread | | | From | Namhyung Kim <> | Date | Thu, 22 Apr 2021 04:53:55 +0900 | Subject | Re: [PATCH] [PING] perf ftrace: Command fails on s390 |
| |
Hello,
On Wed, Apr 21, 2021 at 10:03 PM Thomas Richter <tmricht@linux.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@linux.ibm.com> > Reported-by: Alexander Schmidt <alexschm@de.ibm.com>
Acked-by: Namhyung Kim <namhyung@kernel.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 >
| |