[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171110063053.GA1544@danjae.aot.lge.com>
Date: Fri, 10 Nov 2017 15:30:53 +0900
From: Namhyung Kim <namhyung@...nel.org>
To: Mengting Zhang <zhangmengting@...wei.com>
Cc: jolsa@...hat.com, alexander.shishkin@...ux.intel.com,
acme@...nel.org, Linux-kernel@...r.kernel.org,
linux-perf-users@...r.kernel.org, huawei.libin@...wei.com,
wangnan0@...wei.com, kernel-team@....com
Subject: Re: [PATCH] perf evsel: Fix incorrect precise_ip in default event
name
Hello,
On Fri, Nov 10, 2017 at 01:49:06PM +0800, Mengting Zhang wrote:
> When no event is specified with -e option, perf will specify a
> "cycles" event with the highest level of precision available in
> perf_event_attr.precise_ip as the default event. But the evsel name
> shows an incorrect precise ip, fix it.
>
> For example, with a highest precision perf_event_attr.precise_ip = 2,
> the evsel name "cycles:ppp" shows a wrong precision available.
>
> Before:
> $./perf record sleep 1
> [ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.014 MB perf.data (21 samples) ]
> $./perf evlist -v
> cycles:ppp: size: 112, { sample_period, sample_freq }: 4000,
> sample_type: IP|TID|TIME|PERIOD, disabled: 1, inherit: 1, mmap: 1,
> comm: 1, freq: 1, enable_on_exec: 1, task: 1, precise_ip: 2,
> sample_id_all: 1, exclude_guest: 1, mmap2: 1, comm_exec: 1
>
> After:
> $./perf record sleep 1
> [ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.014 MB perf.data (16 samples) ]
> $./perf evlist -v
> cycles:pp: size: 112, { sample_period, sample_freq }: 4000,
> sample_type: IP|TID|TIME|PERIOD, disabled: 1, inherit: 1, mmap: 1,
> comm: 1, freq: 1, enable_on_exec: 1, task: 1, precise_ip: 2,
> sample_id_all: 1, exclude_guest: 1, mmap2: 1, comm_exec: 1
>
> Signed-off-by: Mengting Zhang <zhangmengting@...wei.com>
> ---
> tools/perf/util/evsel.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
> index 0dccdb8..94cf11d 100644
> --- a/tools/perf/util/evsel.c
> +++ b/tools/perf/util/evsel.c
> @@ -312,7 +312,7 @@ struct perf_evsel *perf_evsel__new_cycles(bool precise)
> if (asprintf(&evsel->name, "cycles%s%s%.*s",
> (attr.precise_ip || attr.exclude_kernel) ? ":" : "",
> attr.exclude_kernel ? "u" : "",
> - attr.precise_ip ? attr.precise_ip + 1 : 0, "ppp") < 0)
> + attr.precise_ip ? attr.precise_ip : 0, "ppp") < 0)
I think you don't need to check value of the precise_ip anymore.
The following should be ok:
attr.precise_ip, "ppp") < 0)
Thanks,
Namhyung
Powered by blists - more mailing lists