Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1346220 > unrolled thread
| Started by | Andi Kleen <andi@firstfloor.org> |
|---|---|
| First post | 2016-02-29 23:40 +0100 |
| Last post | 2016-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.
[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
| From | Andi Kleen <andi@firstfloor.org> |
|---|---|
| Date | 2016-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]
| From | Jiri Olsa <jolsa@redhat.com> |
|---|---|
| Date | 2016-03-01 13:40 +0100 |
| Subject | Re: [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