Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1346220 > unrolled thread

[PATCH 7/7] perf, tools, stat: Check for frontend stalled for metrics

Started byAndi Kleen <andi@firstfloor.org>
First post2016-02-29 23:40 +0100
Last post2016-03-01 13:40 +0100
Articles 2 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 7/7] perf, tools, stat: Check for frontend stalled for metrics Andi Kleen <andi@firstfloor.org> - 2016-02-29 23:40 +0100
    Re: [PATCH 7/7] perf, tools, stat: Check for frontend stalled for  metrics Jiri Olsa <jolsa@redhat.com> - 2016-03-01 13:40 +0100

#1346220 — [PATCH 7/7] perf, tools, stat: Check for frontend stalled for metrics

FromAndi Kleen <andi@firstfloor.org>
Date2016-02-29 23:40 +0100
Subject[PATCH 7/7] perf, tools, stat: Check for frontend stalled for metrics
Message-ID<r7EDV-zZ-37@gated-at.bofh.it>
From: Andi Kleen <ak@linux.intel.com>

Add an extra check for frontend stalled in the metrics.
This avoids an extra column for the --metric-only case
when the CPU does not support frontend stalled.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
---
 tools/perf/util/stat-shadow.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
index 5e2d2e3..7f87ed7 100644
--- a/tools/perf/util/stat-shadow.c
+++ b/tools/perf/util/stat-shadow.c
@@ -2,6 +2,7 @@
 #include "evsel.h"
 #include "stat.h"
 #include "color.h"
+#include "pmu.h"
 
 enum {
 	CTX_BIT_USER	= 1 << 0,
@@ -35,6 +36,7 @@ static struct stats runtime_dtlb_cache_stats[NUM_CTX][MAX_NR_CPUS];
 static struct stats runtime_cycles_in_tx_stats[NUM_CTX][MAX_NR_CPUS];
 static struct stats runtime_transaction_stats[NUM_CTX][MAX_NR_CPUS];
 static struct stats runtime_elision_stats[NUM_CTX][MAX_NR_CPUS];
+static bool have_frontend_stalled;
 
 struct stats walltime_nsecs_stats;
 
@@ -75,6 +77,7 @@ void perf_stat__reset_shadow_stats(void)
 		sizeof(runtime_transaction_stats));
 	memset(runtime_elision_stats, 0, sizeof(runtime_elision_stats));
 	memset(&walltime_nsecs_stats, 0, sizeof(walltime_nsecs_stats));
+	have_frontend_stalled = pmu_have_event("cpu", "stalled-cycles-frontend");
 }
 
 /*
@@ -323,7 +326,7 @@ void perf_stat__print_shadow_stats(struct perf_evsel *evsel,
 			print_metric(ctxp, NULL, "%7.2f ",
 					"stalled cycles per insn",
 					ratio);
-		} else {
+		} else if (have_frontend_stalled) {
 			print_metric(ctxp, NULL, NULL,
 				     "stalled cycles per insn", 0);
 		}
-- 
2.5.0

[toc] | [next] | [standalone]


#1346577 — Re: [PATCH 7/7] perf, tools, stat: Check for frontend stalled for metrics

FromJiri Olsa <jolsa@redhat.com>
Date2016-03-01 13:40 +0100
SubjectRe: [PATCH 7/7] perf, tools, stat: Check for frontend stalled for metrics
Message-ID<r7RKO-Hz-17@gated-at.bofh.it>
In reply to#1346220
On Mon, Feb 29, 2016 at 02:36:26PM -0800, Andi Kleen wrote:
> From: Andi Kleen <ak@linux.intel.com>
> 
> Add an extra check for frontend stalled in the metrics.
> This avoids an extra column for the --metric-only case
> when the CPU does not support frontend stalled.

ook.. that sorts out the stalled column then

> 
> Signed-off-by: Andi Kleen <ak@linux.intel.com>
> ---
>  tools/perf/util/stat-shadow.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
> index 5e2d2e3..7f87ed7 100644
> --- a/tools/perf/util/stat-shadow.c
> +++ b/tools/perf/util/stat-shadow.c
> @@ -2,6 +2,7 @@
>  #include "evsel.h"
>  #include "stat.h"
>  #include "color.h"
> +#include "pmu.h"
>  
>  enum {
>  	CTX_BIT_USER	= 1 << 0,
> @@ -35,6 +36,7 @@ static struct stats runtime_dtlb_cache_stats[NUM_CTX][MAX_NR_CPUS];
>  static struct stats runtime_cycles_in_tx_stats[NUM_CTX][MAX_NR_CPUS];
>  static struct stats runtime_transaction_stats[NUM_CTX][MAX_NR_CPUS];
>  static struct stats runtime_elision_stats[NUM_CTX][MAX_NR_CPUS];
> +static bool have_frontend_stalled;
>  
>  struct stats walltime_nsecs_stats;
>  
> @@ -75,6 +77,7 @@ void perf_stat__reset_shadow_stats(void)
>  		sizeof(runtime_transaction_stats));
>  	memset(runtime_elision_stats, 0, sizeof(runtime_elision_stats));
>  	memset(&walltime_nsecs_stats, 0, sizeof(walltime_nsecs_stats));
> +	have_frontend_stalled = pmu_have_event("cpu", "stalled-cycles-frontend");

not the best place IMO, you need this to be called just once,
maybe adding perf_stat__init_shadow_stats would be better

thanks,
jirka

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web