2019-06-10 23:43:09

by Song Liu

[permalink] [raw]
Subject: [PATCH] perf script/intel-pt: set synth_opts.callchain for use_browser > 0

Currently, intel_pt_process_auxtrace_info() sets synth_opts.callchain for
use_browser != -1, which is not accurate after we set use_browser to 0 in
cmd_script(). As a result, the following commands sees a lot more errors
like:

perf record -e intel_pt//u -C 10 -- sleep 3
perf script

...
instruction trace error type 1 time ...
...

This patch fixes this by checking use_browser > 0 instead.

Fixes: c1c9b9695cc8 ("perf script: Allow extended console debug output")
Reported-by: David Carrillo Cisneros <[email protected]>
Cc: Milian Wolff <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Arnaldo Carvalho de Melo <[email protected]>
Cc: Adrian Hunter <[email protected]>
Signed-off-by: Song Liu <[email protected]>
---
tools/perf/util/intel-pt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/intel-pt.c b/tools/perf/util/intel-pt.c
index 6d288237887b..15692c104ca8 100644
--- a/tools/perf/util/intel-pt.c
+++ b/tools/perf/util/intel-pt.c
@@ -2588,7 +2588,7 @@ int intel_pt_process_auxtrace_info(union perf_event *event,
} else {
itrace_synth_opts__set_default(&pt->synth_opts,
session->itrace_synth_opts->default_no_sample);
- if (use_browser != -1) {
+ if (use_browser > 0) {
pt->synth_opts.branches = false;
pt->synth_opts.callchain = true;
}
--
2.17.1


2019-06-11 07:00:17

by Adrian Hunter

[permalink] [raw]
Subject: Re: [PATCH] perf script/intel-pt: set synth_opts.callchain for use_browser > 0

On 11/06/19 2:42 AM, Song Liu wrote:
> Currently, intel_pt_process_auxtrace_info() sets synth_opts.callchain for
> use_browser != -1, which is not accurate after we set use_browser to 0 in
> cmd_script(). As a result, the following commands sees a lot more errors
> like:
>
> perf record -e intel_pt//u -C 10 -- sleep 3
> perf script
>
> ...
> instruction trace error type 1 time ...
> ...
>
> This patch fixes this by checking use_browser > 0 instead.
>
> Fixes: c1c9b9695cc8 ("perf script: Allow extended console debug output")
> Reported-by: David Carrillo Cisneros <[email protected]>
> Cc: Milian Wolff <[email protected]>
> Cc: Jiri Olsa <[email protected]>
> Cc: Arnaldo Carvalho de Melo <[email protected]>
> Cc: Adrian Hunter <[email protected]>
> Signed-off-by: Song Liu <[email protected]>
> ---
> tools/perf/util/intel-pt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/intel-pt.c b/tools/perf/util/intel-pt.c
> index 6d288237887b..15692c104ca8 100644
> --- a/tools/perf/util/intel-pt.c
> +++ b/tools/perf/util/intel-pt.c
> @@ -2588,7 +2588,7 @@ int intel_pt_process_auxtrace_info(union perf_event *event,
> } else {
> itrace_synth_opts__set_default(&pt->synth_opts,
> session->itrace_synth_opts->default_no_sample);
> - if (use_browser != -1) {
> + if (use_browser > 0) {

That code has changed recently. Refer:

https://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git/commit/?h=perf/core&id=26f19c2eb7e54


> pt->synth_opts.branches = false;
> pt->synth_opts.callchain = true;
> }
>

2019-06-11 07:19:38

by Song Liu

[permalink] [raw]
Subject: Re: [PATCH] perf script/intel-pt: set synth_opts.callchain for use_browser > 0



> On Jun 10, 2019, at 11:45 PM, Adrian Hunter <[email protected]> wrote:
>
> On 11/06/19 2:42 AM, Song Liu wrote:
>> Currently, intel_pt_process_auxtrace_info() sets synth_opts.callchain for
>> use_browser != -1, which is not accurate after we set use_browser to 0 in
>> cmd_script(). As a result, the following commands sees a lot more errors
>> like:
>>
>> perf record -e intel_pt//u -C 10 -- sleep 3
>> perf script
>>
>> ...
>> instruction trace error type 1 time ...
>> ...
>>
>> This patch fixes this by checking use_browser > 0 instead.
>>
>> Fixes: c1c9b9695cc8 ("perf script: Allow extended console debug output")
>> Reported-by: David Carrillo Cisneros <[email protected]>
>> Cc: Milian Wolff <[email protected]>
>> Cc: Jiri Olsa <[email protected]>
>> Cc: Arnaldo Carvalho de Melo <[email protected]>
>> Cc: Adrian Hunter <[email protected]>
>> Signed-off-by: Song Liu <[email protected]>
>> ---
>> tools/perf/util/intel-pt.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/tools/perf/util/intel-pt.c b/tools/perf/util/intel-pt.c
>> index 6d288237887b..15692c104ca8 100644
>> --- a/tools/perf/util/intel-pt.c
>> +++ b/tools/perf/util/intel-pt.c
>> @@ -2588,7 +2588,7 @@ int intel_pt_process_auxtrace_info(union perf_event *event,
>> } else {
>> itrace_synth_opts__set_default(&pt->synth_opts,
>> session->itrace_synth_opts->default_no_sample);
>> - if (use_browser != -1) {
>> + if (use_browser > 0) {
>
> That code has changed recently. Refer:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git/commit/?h=perf/core&id=26f19c2eb7e54

Thanks for a better fix! I was using Arnaldo's perf/urgent branch, and missed
this one.

Song

>
>
>> pt->synth_opts.branches = false;
>> pt->synth_opts.callchain = true;
>> }

2019-06-11 16:42:59

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] perf script/intel-pt: set synth_opts.callchain for use_browser > 0

Em Tue, Jun 11, 2019 at 07:18:09AM +0000, Song Liu escreveu:
>
>
> > On Jun 10, 2019, at 11:45 PM, Adrian Hunter <[email protected]> wrote:
> > On 11/06/19 2:42 AM, Song Liu wrote:
> >> +++ b/tools/perf/util/intel-pt.c
> >> @@ -2588,7 +2588,7 @@ int intel_pt_process_auxtrace_info(union perf_event *event,
> >> } else {
> >> itrace_synth_opts__set_default(&pt->synth_opts,
> >> session->itrace_synth_opts->default_no_sample);
> >> - if (use_browser != -1) {
> >> + if (use_browser > 0) {

> > That code has changed recently. Refer:

> > https://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git/commit/?h=perf/core&id=26f19c2eb7e54

> Thanks for a better fix! I was using Arnaldo's perf/urgent branch, and missed
> this one.

Your report shows this one should move to perf/urgent, will try to do
that after processing a large perf/core batch...

- Arnaldo