Re: [PATCH] perf, tools, stat: Avoid crash with --per-thread

2016-03-02 Thread Arnaldo Carvalho de Melo
Em Wed, Mar 02, 2016 at 07:36:59AM +0100, Jiri Olsa escreveu:
> On Tue, Mar 01, 2016 at 03:32:37PM -0800, Andi Kleen wrote:
> > From: Andi Kleen 
> > 
> > Bug fix:
> > 
> > The earlier metrics changes broke --per-thread causing a segfault.
> > Handle this case correctly. We actually don't print metrics
> > in per thread mode, so using a 0 shadow CPU is fine.
> 
> right, so --per-thread paths go through perf_stat__print_shadow_stats
> but never actually collect shadow data, so it does not print anything
> 
> we would need somehow map each thread to the shadow cpu.. I'll try
> to come up with something.. however:
> 
> Acked-by: Jiri Olsa 

Kept the ack for the previous commit ("Support metrics in
--per-core/socket mode")

> > Could be folded into
> > "perf, tools, stat: Support metrics in --per-core/socket mode"

And used 'git rebase --interactive' to 'fixup' this into it, i.e. do
what Andi suggested to avoid breaking the 'perf stat --per-thread'
bisection since this one hasn't been pushed to Ingo yet.

Thanks,

- Arnaldo


Re: [PATCH] perf, tools, stat: Avoid crash with --per-thread

2016-03-02 Thread Arnaldo Carvalho de Melo
Em Wed, Mar 02, 2016 at 07:36:59AM +0100, Jiri Olsa escreveu:
> On Tue, Mar 01, 2016 at 03:32:37PM -0800, Andi Kleen wrote:
> > From: Andi Kleen 
> > 
> > Bug fix:
> > 
> > The earlier metrics changes broke --per-thread causing a segfault.
> > Handle this case correctly. We actually don't print metrics
> > in per thread mode, so using a 0 shadow CPU is fine.
> 
> right, so --per-thread paths go through perf_stat__print_shadow_stats
> but never actually collect shadow data, so it does not print anything
> 
> we would need somehow map each thread to the shadow cpu.. I'll try
> to come up with something.. however:
> 
> Acked-by: Jiri Olsa 

Kept the ack for the previous commit ("Support metrics in
--per-core/socket mode")

> > Could be folded into
> > "perf, tools, stat: Support metrics in --per-core/socket mode"

And used 'git rebase --interactive' to 'fixup' this into it, i.e. do
what Andi suggested to avoid breaking the 'perf stat --per-thread'
bisection since this one hasn't been pushed to Ingo yet.

Thanks,

- Arnaldo


Re: [PATCH] perf, tools, stat: Avoid crash with --per-thread

2016-03-01 Thread Jiri Olsa
On Tue, Mar 01, 2016 at 03:32:37PM -0800, Andi Kleen wrote:
> From: Andi Kleen 
> 
> Bug fix:
> 
> The earlier metrics changes broke --per-thread causing a segfault.
> Handle this case correctly. We actually don't print metrics
> in per thread mode, so using a 0 shadow CPU is fine.

right, so --per-thread paths go through perf_stat__print_shadow_stats
but never actually collect shadow data, so it does not print anything

we would need somehow map each thread to the shadow cpu.. I'll try
to come up with something.. however:

Acked-by: Jiri Olsa 

thanks,
jirka


> 
> Could be folded into
> "perf, tools, stat: Support metrics in --per-core/socket mode"
> 
> Signed-off-by: Andi Kleen 
> ---
>  tools/perf/builtin-stat.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
> index c11374b..52a37a5 100644
> --- a/tools/perf/builtin-stat.c
> +++ b/tools/perf/builtin-stat.c
> @@ -977,6 +977,9 @@ static int first_shadow_cpu(struct perf_evsel *evsel, int 
> id)
>  {
>   int i;
>  
> + if (!aggr_get_id)
> + return 0;
> +
>   if (stat_config.aggr_mode == AGGR_NONE)
>   return id;
>  
> -- 
> 2.5.0
> 


Re: [PATCH] perf, tools, stat: Avoid crash with --per-thread

2016-03-01 Thread Jiri Olsa
On Tue, Mar 01, 2016 at 03:32:37PM -0800, Andi Kleen wrote:
> From: Andi Kleen 
> 
> Bug fix:
> 
> The earlier metrics changes broke --per-thread causing a segfault.
> Handle this case correctly. We actually don't print metrics
> in per thread mode, so using a 0 shadow CPU is fine.

right, so --per-thread paths go through perf_stat__print_shadow_stats
but never actually collect shadow data, so it does not print anything

we would need somehow map each thread to the shadow cpu.. I'll try
to come up with something.. however:

Acked-by: Jiri Olsa 

thanks,
jirka


> 
> Could be folded into
> "perf, tools, stat: Support metrics in --per-core/socket mode"
> 
> Signed-off-by: Andi Kleen 
> ---
>  tools/perf/builtin-stat.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
> index c11374b..52a37a5 100644
> --- a/tools/perf/builtin-stat.c
> +++ b/tools/perf/builtin-stat.c
> @@ -977,6 +977,9 @@ static int first_shadow_cpu(struct perf_evsel *evsel, int 
> id)
>  {
>   int i;
>  
> + if (!aggr_get_id)
> + return 0;
> +
>   if (stat_config.aggr_mode == AGGR_NONE)
>   return id;
>  
> -- 
> 2.5.0
> 


[PATCH] perf, tools, stat: Avoid crash with --per-thread

2016-03-01 Thread Andi Kleen
From: Andi Kleen 

Bug fix:

The earlier metrics changes broke --per-thread causing a segfault.
Handle this case correctly. We actually don't print metrics
in per thread mode, so using a 0 shadow CPU is fine.

Could be folded into
"perf, tools, stat: Support metrics in --per-core/socket mode"

Signed-off-by: Andi Kleen 
---
 tools/perf/builtin-stat.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index c11374b..52a37a5 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -977,6 +977,9 @@ static int first_shadow_cpu(struct perf_evsel *evsel, int 
id)
 {
int i;
 
+   if (!aggr_get_id)
+   return 0;
+
if (stat_config.aggr_mode == AGGR_NONE)
return id;
 
-- 
2.5.0



[PATCH] perf, tools, stat: Avoid crash with --per-thread

2016-03-01 Thread Andi Kleen
From: Andi Kleen 

Bug fix:

The earlier metrics changes broke --per-thread causing a segfault.
Handle this case correctly. We actually don't print metrics
in per thread mode, so using a 0 shadow CPU is fine.

Could be folded into
"perf, tools, stat: Support metrics in --per-core/socket mode"

Signed-off-by: Andi Kleen 
---
 tools/perf/builtin-stat.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index c11374b..52a37a5 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -977,6 +977,9 @@ static int first_shadow_cpu(struct perf_evsel *evsel, int 
id)
 {
int i;
 
+   if (!aggr_get_id)
+   return 0;
+
if (stat_config.aggr_mode == AGGR_NONE)
return id;
 
-- 
2.5.0