All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] perf diff: Fix indentation of stalled backend cycle
@ 2016-05-13  6:01 Namhyung Kim
  2016-05-13  6:01 ` [PATCH 2/3] perf stat: Update runtime using cpu-clock event Namhyung Kim
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Namhyung Kim @ 2016-05-13  6:01 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML, Andi Kleen

The commit 140aeadc1fb5 ("perf stat: Abstract stat metrics printing")
changed way to print shadow metrics, but it missed to update the width
of stalled backend cycles event to 7.2% like others.  This resulted in
misaligned output like below:

 Performance counter stats for 'pwd':

          0.638313      task-clock (msec)         #    0.567 CPUs utilized
                 0      context-switches          #    0.000 K/sec
                 0      cpu-migrations            #    0.000 K/sec
                54      page-faults               #    0.085 M/sec
           885,600      cycles                    #    1.387 GHz
           558,438      stalled-cycles-frontend   #   63.06% frontend cycles idle
           431,355      stalled-cycles-backend    #  48.71% backend cycles idle
           674,956      instructions              #    0.76  insn per cycle
                                                  #    0.83  stalled cycles per insn
           130,380      branches                  #  204.257 M/sec
     <not counted>      branch-misses

       0.001125426 seconds time elapsed

Cc: Andi Kleen <andi@firstfloor.org>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/util/stat-shadow.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
index fdb71961143e..61200fcac5ef 100644
--- a/tools/perf/util/stat-shadow.c
+++ b/tools/perf/util/stat-shadow.c
@@ -188,7 +188,7 @@ static void print_stalled_cycles_backend(int cpu,
 
 	color = get_ratio_color(GRC_STALLED_CYCLES_BE, ratio);
 
-	out->print_metric(out->ctx, color, "%6.2f%%", "backend cycles idle", ratio);
+	out->print_metric(out->ctx, color, "%7.2f%%", "backend cycles idle", ratio);
 }
 
 static void print_branch_misses(int cpu,
-- 
2.8.2

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/3] perf stat: Update runtime using cpu-clock event
  2016-05-13  6:01 [PATCH 1/3] perf diff: Fix indentation of stalled backend cycle Namhyung Kim
@ 2016-05-13  6:01 ` Namhyung Kim
  2016-05-20  6:43   ` [tip:perf/urgent] " tip-bot for Namhyung Kim
  2016-05-13  6:01 ` [PATCH 3/3] perf stat: Use cpu-clock event for cpu targets Namhyung Kim
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 10+ messages in thread
From: Namhyung Kim @ 2016-05-13  6:01 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML, Andi Kleen

Currently only task-clock event updates the runtime_nsec so it cannot
show the metric when using cpu-clock events.  However cpu clock works
basically same as task-clock, so no need to not update the runtime IMHO.

Before:

  # perf stat -a -e cpu-clock,context-switches,page-faults,cycles sleep 0.1

    Performance counter stats for 'system wide':

         1217.759506      cpu-clock (msec)
                  93      context-switches
                  61      page-faults
          18,958,022      cycles

         0.101393794 seconds time elapsed

After:

   Performance counter stats for 'system wide':

         1220.471884      cpu-clock (msec)          #   12.013 CPUs utilized
                 118      context-switches          #    0.097 K/sec
                  59      page-faults               #    0.048 K/sec
          17,941,247      cycles                    #    0.015 GHz

         0.101594777 seconds time elapsed

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/util/stat-shadow.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
index 61200fcac5ef..aa9efe08762b 100644
--- a/tools/perf/util/stat-shadow.c
+++ b/tools/perf/util/stat-shadow.c
@@ -94,7 +94,8 @@ void perf_stat__update_shadow_stats(struct perf_evsel *counter, u64 *count,
 {
 	int ctx = evsel_context(counter);
 
-	if (perf_evsel__match(counter, SOFTWARE, SW_TASK_CLOCK))
+	if (perf_evsel__match(counter, SOFTWARE, SW_TASK_CLOCK) ||
+	    perf_evsel__match(counter, SOFTWARE, SW_CPU_CLOCK))
 		update_stats(&runtime_nsecs_stats[cpu], count[0]);
 	else if (perf_evsel__match(counter, HARDWARE, HW_CPU_CYCLES))
 		update_stats(&runtime_cycles_stats[ctx][cpu], count[0]);
@@ -444,7 +445,8 @@ void perf_stat__print_shadow_stats(struct perf_evsel *evsel,
 			ratio = total / avg;
 
 		print_metric(ctxp, NULL, "%8.0f", "cycles / elision", ratio);
-	} else if (perf_evsel__match(evsel, SOFTWARE, SW_TASK_CLOCK)) {
+	} else if (perf_evsel__match(evsel, SOFTWARE, SW_TASK_CLOCK) ||
+		   perf_evsel__match(evsel, SOFTWARE, SW_CPU_CLOCK)) {
 		if ((ratio = avg_stats(&walltime_nsecs_stats)) != 0)
 			print_metric(ctxp, NULL, "%8.3f", "CPUs utilized",
 				     avg / ratio);
-- 
2.8.2

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 3/3] perf stat: Use cpu-clock event for cpu targets
  2016-05-13  6:01 [PATCH 1/3] perf diff: Fix indentation of stalled backend cycle Namhyung Kim
  2016-05-13  6:01 ` [PATCH 2/3] perf stat: Update runtime using cpu-clock event Namhyung Kim
@ 2016-05-13  6:01 ` Namhyung Kim
  2016-05-20  6:44   ` [tip:perf/urgent] " tip-bot for Namhyung Kim
  2016-05-13 11:48 ` [PATCH 1/3] perf diff: Fix indentation of stalled backend cycle Arnaldo Carvalho de Melo
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 10+ messages in thread
From: Namhyung Kim @ 2016-05-13  6:01 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML, Andi Kleen

Currently perf stat always counts task-clock event by default.  But it's
somewhat confusing for system-wide targets (especially with 'sleep N' as
the 'sleep' task just sleeps and doesn't use cputime).  Changing to
cpu-clock event instead for that case makes more sense IMHO.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 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 5645a8361de6..d602e9e93dc1 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1904,6 +1904,9 @@ static int add_default_attributes(void)
 	}
 
 	if (!evsel_list->nr_entries) {
+		if (target__has_cpu(&target))
+			default_attrs0[0].config = PERF_COUNT_SW_CPU_CLOCK;
+
 		if (perf_evlist__add_default_attrs(evsel_list, default_attrs0) < 0)
 			return -1;
 		if (pmu_have_event("cpu", "stalled-cycles-frontend")) {
-- 
2.8.2

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/3] perf diff: Fix indentation of stalled backend cycle
  2016-05-13  6:01 [PATCH 1/3] perf diff: Fix indentation of stalled backend cycle Namhyung Kim
  2016-05-13  6:01 ` [PATCH 2/3] perf stat: Update runtime using cpu-clock event Namhyung Kim
  2016-05-13  6:01 ` [PATCH 3/3] perf stat: Use cpu-clock event for cpu targets Namhyung Kim
@ 2016-05-13 11:48 ` Arnaldo Carvalho de Melo
  2016-05-13 13:42   ` Namhyung Kim
  2016-05-13 14:00 ` Andi Kleen
  2016-05-20  6:43 ` [tip:perf/urgent] perf stat: " tip-bot for Namhyung Kim
  4 siblings, 1 reply; 10+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-05-13 11:48 UTC (permalink / raw)
  To: Namhyung Kim; +Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML, Andi Kleen

Em Fri, May 13, 2016 at 03:01:01PM +0900, Namhyung Kim escreveu:
> The commit 140aeadc1fb5 ("perf stat: Abstract stat metrics printing")
> changed way to print shadow metrics, but it missed to update the width
> of stalled backend cycles event to 7.2% like others.  This resulted in
> misaligned output like below:

Thanks for pointing out the cset that introduced the problem, helps in
reviewing! Next time please consider adding it right before your
Signed-off-by line as:

Fixes: 140aeadc1fb5 ("perf stat: Abstract stat metrics printing")

Thanks!

- Arnaldo
 
>  Performance counter stats for 'pwd':
> 
>           0.638313      task-clock (msec)         #    0.567 CPUs utilized
>                  0      context-switches          #    0.000 K/sec
>                  0      cpu-migrations            #    0.000 K/sec
>                 54      page-faults               #    0.085 M/sec
>            885,600      cycles                    #    1.387 GHz
>            558,438      stalled-cycles-frontend   #   63.06% frontend cycles idle
>            431,355      stalled-cycles-backend    #  48.71% backend cycles idle
>            674,956      instructions              #    0.76  insn per cycle
>                                                   #    0.83  stalled cycles per insn
>            130,380      branches                  #  204.257 M/sec
>      <not counted>      branch-misses
> 
>        0.001125426 seconds time elapsed
> 
> Cc: Andi Kleen <andi@firstfloor.org>
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> ---
>  tools/perf/util/stat-shadow.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
> index fdb71961143e..61200fcac5ef 100644
> --- a/tools/perf/util/stat-shadow.c
> +++ b/tools/perf/util/stat-shadow.c
> @@ -188,7 +188,7 @@ static void print_stalled_cycles_backend(int cpu,
>  
>  	color = get_ratio_color(GRC_STALLED_CYCLES_BE, ratio);
>  
> -	out->print_metric(out->ctx, color, "%6.2f%%", "backend cycles idle", ratio);
> +	out->print_metric(out->ctx, color, "%7.2f%%", "backend cycles idle", ratio);
>  }
>  
>  static void print_branch_misses(int cpu,
> -- 
> 2.8.2

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/3] perf diff: Fix indentation of stalled backend cycle
  2016-05-13 11:48 ` [PATCH 1/3] perf diff: Fix indentation of stalled backend cycle Arnaldo Carvalho de Melo
@ 2016-05-13 13:42   ` Namhyung Kim
  2016-05-13 17:57     ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 10+ messages in thread
From: Namhyung Kim @ 2016-05-13 13:42 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML, Andi Kleen

Hi Arnaldo,

On Fri, May 13, 2016 at 08:48:48AM -0300, Arnaldo Carvalho de Melo wrote:
> Em Fri, May 13, 2016 at 03:01:01PM +0900, Namhyung Kim escreveu:
> > The commit 140aeadc1fb5 ("perf stat: Abstract stat metrics printing")
> > changed way to print shadow metrics, but it missed to update the width
> > of stalled backend cycles event to 7.2% like others.  This resulted in
> > misaligned output like below:
> 
> Thanks for pointing out the cset that introduced the problem, helps in
> reviewing! Next time please consider adding it right before your
> Signed-off-by line as:
> 
> Fixes: 140aeadc1fb5 ("perf stat: Abstract stat metrics printing")
> 
> Thanks!

Ok, will do it later.  Btw I found the subject line should start with
'perf stat' instead of 'perf diff'..

Thanks,
Namhyung


>  
> >  Performance counter stats for 'pwd':
> > 
> >           0.638313      task-clock (msec)         #    0.567 CPUs utilized
> >                  0      context-switches          #    0.000 K/sec
> >                  0      cpu-migrations            #    0.000 K/sec
> >                 54      page-faults               #    0.085 M/sec
> >            885,600      cycles                    #    1.387 GHz
> >            558,438      stalled-cycles-frontend   #   63.06% frontend cycles idle
> >            431,355      stalled-cycles-backend    #  48.71% backend cycles idle
> >            674,956      instructions              #    0.76  insn per cycle
> >                                                   #    0.83  stalled cycles per insn
> >            130,380      branches                  #  204.257 M/sec
> >      <not counted>      branch-misses
> > 
> >        0.001125426 seconds time elapsed
> > 
> > Cc: Andi Kleen <andi@firstfloor.org>
> > Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> > ---
> >  tools/perf/util/stat-shadow.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
> > index fdb71961143e..61200fcac5ef 100644
> > --- a/tools/perf/util/stat-shadow.c
> > +++ b/tools/perf/util/stat-shadow.c
> > @@ -188,7 +188,7 @@ static void print_stalled_cycles_backend(int cpu,
> >  
> >  	color = get_ratio_color(GRC_STALLED_CYCLES_BE, ratio);
> >  
> > -	out->print_metric(out->ctx, color, "%6.2f%%", "backend cycles idle", ratio);
> > +	out->print_metric(out->ctx, color, "%7.2f%%", "backend cycles idle", ratio);
> >  }
> >  
> >  static void print_branch_misses(int cpu,
> > -- 
> > 2.8.2

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/3] perf diff: Fix indentation of stalled backend cycle
  2016-05-13  6:01 [PATCH 1/3] perf diff: Fix indentation of stalled backend cycle Namhyung Kim
                   ` (2 preceding siblings ...)
  2016-05-13 11:48 ` [PATCH 1/3] perf diff: Fix indentation of stalled backend cycle Arnaldo Carvalho de Melo
@ 2016-05-13 14:00 ` Andi Kleen
  2016-05-20  6:43 ` [tip:perf/urgent] perf stat: " tip-bot for Namhyung Kim
  4 siblings, 0 replies; 10+ messages in thread
From: Andi Kleen @ 2016-05-13 14:00 UTC (permalink / raw)
  To: Namhyung Kim
  Cc: Arnaldo Carvalho de Melo, Ingo Molnar, Peter Zijlstra, Jiri Olsa,
	LKML, Andi Kleen

On Fri, May 13, 2016 at 03:01:01PM +0900, Namhyung Kim wrote:
> The commit 140aeadc1fb5 ("perf stat: Abstract stat metrics printing")
> changed way to print shadow metrics, but it missed to update the width
> of stalled backend cycles event to 7.2% like others.  This resulted in
> misaligned output like below:

Thanks.

My preferred action would be actually kill
stalled-cycles-frontend/backend.
I don't know any CPU where it is accurate.

TopDown is much better.

But as long as it is kept it is better to align it right.


-Andi

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/3] perf diff: Fix indentation of stalled backend cycle
  2016-05-13 13:42   ` Namhyung Kim
@ 2016-05-13 17:57     ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 10+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-05-13 17:57 UTC (permalink / raw)
  To: Namhyung Kim; +Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML, Andi Kleen

Em Fri, May 13, 2016 at 10:42:24PM +0900, Namhyung Kim escreveu:
> Hi Arnaldo,
> 
> On Fri, May 13, 2016 at 08:48:48AM -0300, Arnaldo Carvalho de Melo wrote:
> > Em Fri, May 13, 2016 at 03:01:01PM +0900, Namhyung Kim escreveu:
> > > The commit 140aeadc1fb5 ("perf stat: Abstract stat metrics printing")
> > > changed way to print shadow metrics, but it missed to update the width
> > > of stalled backend cycles event to 7.2% like others.  This resulted in
> > > misaligned output like below:
> > 
> > Thanks for pointing out the cset that introduced the problem, helps in
> > reviewing! Next time please consider adding it right before your
> > Signed-off-by line as:
> > 
> > Fixes: 140aeadc1fb5 ("perf stat: Abstract stat metrics printing")
> > 
> > Thanks!
> 
> Ok, will do it later.  Btw I found the subject line should start with

No need, I did it already, and also renamed the subject to "perf stat:
..."

> 'perf stat' instead of 'perf diff'..

Fixed,

thanks,

- Arnaldo
 
> Thanks,
> Namhyung
> 
> 
> >  
> > >  Performance counter stats for 'pwd':
> > > 
> > >           0.638313      task-clock (msec)         #    0.567 CPUs utilized
> > >                  0      context-switches          #    0.000 K/sec
> > >                  0      cpu-migrations            #    0.000 K/sec
> > >                 54      page-faults               #    0.085 M/sec
> > >            885,600      cycles                    #    1.387 GHz
> > >            558,438      stalled-cycles-frontend   #   63.06% frontend cycles idle
> > >            431,355      stalled-cycles-backend    #  48.71% backend cycles idle
> > >            674,956      instructions              #    0.76  insn per cycle
> > >                                                   #    0.83  stalled cycles per insn
> > >            130,380      branches                  #  204.257 M/sec
> > >      <not counted>      branch-misses
> > > 
> > >        0.001125426 seconds time elapsed
> > > 
> > > Cc: Andi Kleen <andi@firstfloor.org>
> > > Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> > > ---
> > >  tools/perf/util/stat-shadow.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
> > > index fdb71961143e..61200fcac5ef 100644
> > > --- a/tools/perf/util/stat-shadow.c
> > > +++ b/tools/perf/util/stat-shadow.c
> > > @@ -188,7 +188,7 @@ static void print_stalled_cycles_backend(int cpu,
> > >  
> > >  	color = get_ratio_color(GRC_STALLED_CYCLES_BE, ratio);
> > >  
> > > -	out->print_metric(out->ctx, color, "%6.2f%%", "backend cycles idle", ratio);
> > > +	out->print_metric(out->ctx, color, "%7.2f%%", "backend cycles idle", ratio);
> > >  }
> > >  
> > >  static void print_branch_misses(int cpu,
> > > -- 
> > > 2.8.2

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [tip:perf/urgent] perf stat: Fix indentation of stalled backend cycle
  2016-05-13  6:01 [PATCH 1/3] perf diff: Fix indentation of stalled backend cycle Namhyung Kim
                   ` (3 preceding siblings ...)
  2016-05-13 14:00 ` Andi Kleen
@ 2016-05-20  6:43 ` tip-bot for Namhyung Kim
  4 siblings, 0 replies; 10+ messages in thread
From: tip-bot for Namhyung Kim @ 2016-05-20  6:43 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: andi, tglx, a.p.zijlstra, mingo, acme, namhyung, hpa,
	linux-kernel, jolsa

Commit-ID:  b0404be8d6186f9f3c23e2b5ff247e667be90652
Gitweb:     http://git.kernel.org/tip/b0404be8d6186f9f3c23e2b5ff247e667be90652
Author:     Namhyung Kim <namhyung@kernel.org>
AuthorDate: Fri, 13 May 2016 15:01:01 +0900
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 16 May 2016 23:11:45 -0300

perf stat: Fix indentation of stalled backend cycle

The commit 140aeadc1fb5 ("perf stat: Abstract stat metrics printing")
changed how shadow metrics are printed, but it missed to update the
width of the stalled backend cycles event to 7.2% like others.  This
resulted in misaligned output like below:

  Performance counter stats for 'pwd':

          0.638313      task-clock (msec)         #    0.567 CPUs utilized
                 0      context-switches          #    0.000 K/sec
                 0      cpu-migrations            #    0.000 K/sec
                54      page-faults               #    0.085 M/sec
           885,600      cycles                    #    1.387 GHz
           558,438      stalled-cycles-frontend   #   63.06% frontend cycles idle
           431,355      stalled-cycles-backend    #  48.71% backend cycles idle
           674,956      instructions              #    0.76  insn per cycle
                                                  #    0.83  stalled cycles per insn
           130,380      branches                  #  204.257 M/sec
     <not counted>      branch-misses

       0.001125426 seconds time elapsed

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Fixes: 140aeadc1fb5 ("perf stat: Abstract stat metrics printing")
Link: http://lkml.kernel.org/r/1463119263-5569-1-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/stat-shadow.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
index fdb7196..61200fc 100644
--- a/tools/perf/util/stat-shadow.c
+++ b/tools/perf/util/stat-shadow.c
@@ -188,7 +188,7 @@ static void print_stalled_cycles_backend(int cpu,
 
 	color = get_ratio_color(GRC_STALLED_CYCLES_BE, ratio);
 
-	out->print_metric(out->ctx, color, "%6.2f%%", "backend cycles idle", ratio);
+	out->print_metric(out->ctx, color, "%7.2f%%", "backend cycles idle", ratio);
 }
 
 static void print_branch_misses(int cpu,

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [tip:perf/urgent] perf stat: Update runtime using cpu-clock event
  2016-05-13  6:01 ` [PATCH 2/3] perf stat: Update runtime using cpu-clock event Namhyung Kim
@ 2016-05-20  6:43   ` tip-bot for Namhyung Kim
  0 siblings, 0 replies; 10+ messages in thread
From: tip-bot for Namhyung Kim @ 2016-05-20  6:43 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: jolsa, hpa, acme, a.p.zijlstra, linux-kernel, mingo, tglx,
	namhyung, andi

Commit-ID:  daf4f4786e8af371048e72cb37ac05190e89198a
Gitweb:     http://git.kernel.org/tip/daf4f4786e8af371048e72cb37ac05190e89198a
Author:     Namhyung Kim <namhyung@kernel.org>
AuthorDate: Fri, 13 May 2016 15:01:02 +0900
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 16 May 2016 23:11:46 -0300

perf stat: Update runtime using cpu-clock event

Currently only the task-clock event updates the runtime_nsec so it
cannot show the metric when using cpu-clock events.  However cpu clock
works basically same as task-clock, so no need to not update the runtime
IMHO.

Before:

  # perf stat -a -e cpu-clock,context-switches,page-faults,cycles sleep 0.1

    Performance counter stats for 'system wide':

         1217.759506      cpu-clock (msec)
                  93      context-switches
                  61      page-faults
          18,958,022      cycles

         0.101393794 seconds time elapsed

After:

   Performance counter stats for 'system wide':

         1220.471884      cpu-clock (msec)          #   12.013 CPUs utilized
                 118      context-switches          #    0.097 K/sec
                  59      page-faults               #    0.048 K/sec
          17,941,247      cycles                    #    0.015 GHz

         0.101594777 seconds time elapsed

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1463119263-5569-2-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/stat-shadow.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
index 61200fc..aa9efe0 100644
--- a/tools/perf/util/stat-shadow.c
+++ b/tools/perf/util/stat-shadow.c
@@ -94,7 +94,8 @@ void perf_stat__update_shadow_stats(struct perf_evsel *counter, u64 *count,
 {
 	int ctx = evsel_context(counter);
 
-	if (perf_evsel__match(counter, SOFTWARE, SW_TASK_CLOCK))
+	if (perf_evsel__match(counter, SOFTWARE, SW_TASK_CLOCK) ||
+	    perf_evsel__match(counter, SOFTWARE, SW_CPU_CLOCK))
 		update_stats(&runtime_nsecs_stats[cpu], count[0]);
 	else if (perf_evsel__match(counter, HARDWARE, HW_CPU_CYCLES))
 		update_stats(&runtime_cycles_stats[ctx][cpu], count[0]);
@@ -444,7 +445,8 @@ void perf_stat__print_shadow_stats(struct perf_evsel *evsel,
 			ratio = total / avg;
 
 		print_metric(ctxp, NULL, "%8.0f", "cycles / elision", ratio);
-	} else if (perf_evsel__match(evsel, SOFTWARE, SW_TASK_CLOCK)) {
+	} else if (perf_evsel__match(evsel, SOFTWARE, SW_TASK_CLOCK) ||
+		   perf_evsel__match(evsel, SOFTWARE, SW_CPU_CLOCK)) {
 		if ((ratio = avg_stats(&walltime_nsecs_stats)) != 0)
 			print_metric(ctxp, NULL, "%8.3f", "CPUs utilized",
 				     avg / ratio);

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [tip:perf/urgent] perf stat: Use cpu-clock event for cpu targets
  2016-05-13  6:01 ` [PATCH 3/3] perf stat: Use cpu-clock event for cpu targets Namhyung Kim
@ 2016-05-20  6:44   ` tip-bot for Namhyung Kim
  0 siblings, 0 replies; 10+ messages in thread
From: tip-bot for Namhyung Kim @ 2016-05-20  6:44 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: namhyung, tglx, mingo, andi, a.p.zijlstra, acme, hpa,
	linux-kernel, jolsa

Commit-ID:  a1f3d56761df31f0ffeb215b974e26d5613e92a4
Gitweb:     http://git.kernel.org/tip/a1f3d56761df31f0ffeb215b974e26d5613e92a4
Author:     Namhyung Kim <namhyung@kernel.org>
AuthorDate: Fri, 13 May 2016 15:01:03 +0900
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 16 May 2016 23:11:47 -0300

perf stat: Use cpu-clock event for cpu targets

Currently 'perf stat' always counts task-clock event by default.  But
it's somewhat confusing for system-wide targets (especially with 'sleep
N' as the 'sleep' task just sleeps and doesn't use cputime).  Changing
to cpu-clock event instead for that case makes more sense IMHO.

Before:
  # perf stat -a sleep 0.1

   Performance counter stats for 'system wide':

        403.038603      task-clock (msec)     #    4.001 CPUs utilized
               150      context-switches      #    0.372 K/sec
                 7      cpu-migrations        #    0.017 K/sec
                71      page-faults           #    0.176 K/sec
        23,705,169      cycles                #    0.059 GHz
        15,888,166      instructions          #    0.67  insn per cycle
         3,326,078      branches              #    8.253 M/sec
            87,643      branch-misses         #    2.64% of all branches

       0.100737009 seconds time elapsed

  #

After:

  # perf stat -a sleep 0.1

   Performance counter stats for 'system wide':

        404.271182      cpu-clock (msec)      #    4.000 CPUs utilized
               143      context-switches      #    0.354 K/sec
                13      cpu-migrations        #    0.032 K/sec
                73      page-faults           #    0.181 K/sec
        22,119,220      cycles                #    0.055 GHz
        13,622,065      instructions          #    0.62  insn per cycle
         2,918,769      branches              #    7.220 M/sec
            85,033      branch-misses         #    2.91% of all branches

       0.101073089 seconds time elapsed

  #

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1463119263-5569-3-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 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 16a923c..efdd232 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1905,6 +1905,9 @@ static int add_default_attributes(void)
 	}
 
 	if (!evsel_list->nr_entries) {
+		if (target__has_cpu(&target))
+			default_attrs0[0].config = PERF_COUNT_SW_CPU_CLOCK;
+
 		if (perf_evlist__add_default_attrs(evsel_list, default_attrs0) < 0)
 			return -1;
 		if (pmu_have_event("cpu", "stalled-cycles-frontend")) {

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2016-05-20  6:44 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-13  6:01 [PATCH 1/3] perf diff: Fix indentation of stalled backend cycle Namhyung Kim
2016-05-13  6:01 ` [PATCH 2/3] perf stat: Update runtime using cpu-clock event Namhyung Kim
2016-05-20  6:43   ` [tip:perf/urgent] " tip-bot for Namhyung Kim
2016-05-13  6:01 ` [PATCH 3/3] perf stat: Use cpu-clock event for cpu targets Namhyung Kim
2016-05-20  6:44   ` [tip:perf/urgent] " tip-bot for Namhyung Kim
2016-05-13 11:48 ` [PATCH 1/3] perf diff: Fix indentation of stalled backend cycle Arnaldo Carvalho de Melo
2016-05-13 13:42   ` Namhyung Kim
2016-05-13 17:57     ` Arnaldo Carvalho de Melo
2016-05-13 14:00 ` Andi Kleen
2016-05-20  6:43 ` [tip:perf/urgent] perf stat: " tip-bot for Namhyung Kim

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.