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


Groups > linux.kernel > #1724533

[PATCH v3 10/11] perf, tools, stat: Hide internal duration_time counter

From Andi Kleen <andi@firstfloor.org>
Newsgroups linux.kernel
Subject [PATCH v3 10/11] perf, tools, stat: Hide internal duration_time counter
Date 2017-08-31 21:50 +0200
Message-ID <ukDDs-1ub-31@gated-at.bofh.it> (permalink)
References <ukDDr-1ub-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


From: Andi Kleen <ak@linux.intel.com>

Some perf stat metrics use an internal "duration_time" metric. It is not
correctly printed however. So hide it during output to avoid confusing users
with 0 counts.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
---
 tools/perf/builtin-stat.c | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 045efd7d7785..bf6ae0144ecf 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -195,6 +195,11 @@ static struct perf_stat_config stat_config = {
 	.scale		= true,
 };
 
+static bool is_duration_time(struct perf_evsel *evsel)
+{
+	return !strcmp(evsel->name, "duration_time");
+}
+
 static inline void diff_timespec(struct timespec *r, struct timespec *a,
 				 struct timespec *b)
 {
@@ -1363,6 +1368,9 @@ static void print_aggr(char *prefix)
 		ad.id = id = aggr_map->map[s];
 		first = true;
 		evlist__for_each_entry(evsel_list, counter) {
+			if (is_duration_time(counter))
+				continue;
+
 			ad.val = ad.ena = ad.run = 0;
 			ad.nr = 0;
 			if (!collect_data(counter, aggr_cb, &ad))
@@ -1506,6 +1514,8 @@ static void print_no_aggr_metric(char *prefix)
 		if (prefix)
 			fputs(prefix, stat_config.output);
 		evlist__for_each_entry(evsel_list, counter) {
+			if (is_duration_time(counter))
+				continue;
 			if (first) {
 				aggr_printout(counter, cpu, 0);
 				first = false;
@@ -1560,6 +1570,8 @@ static void print_metric_headers(const char *prefix, bool no_indent)
 
 	/* Print metrics headers only */
 	evlist__for_each_entry(evsel_list, counter) {
+		if (is_duration_time(counter))
+			continue;
 		os.evsel = counter;
 		out.ctx = &os;
 		out.print_metric = print_metric_header;
@@ -1707,12 +1719,18 @@ static void print_counters(struct timespec *ts, int argc, const char **argv)
 		print_aggr(prefix);
 		break;
 	case AGGR_THREAD:
-		evlist__for_each_entry(evsel_list, counter)
+		evlist__for_each_entry(evsel_list, counter) {
+			if (is_duration_time(counter))
+				continue;
 			print_aggr_thread(counter, prefix);
+		}
 		break;
 	case AGGR_GLOBAL:
-		evlist__for_each_entry(evsel_list, counter)
+		evlist__for_each_entry(evsel_list, counter) {
+			if (is_duration_time(counter))
+				continue;
 			print_counter_aggr(counter, prefix);
+		}
 		if (metric_only)
 			fputc('\n', stat_config.output);
 		break;
@@ -1720,8 +1738,11 @@ static void print_counters(struct timespec *ts, int argc, const char **argv)
 		if (metric_only)
 			print_no_aggr_metric(prefix);
 		else {
-			evlist__for_each_entry(evsel_list, counter)
+			evlist__for_each_entry(evsel_list, counter) {
+				if (is_duration_time(counter))
+					continue;
 				print_counter(counter, prefix);
+			}
 		}
 		break;
 	case AGGR_UNSET:
-- 
2.9.5

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Support standalone metrics and metric groups for perf Andi Kleen <andi@firstfloor.org> - 2017-08-31 21:50 +0200
  [PATCH v3 07/11] perf, tools, list: Add metric groups to perf list Andi Kleen <andi@firstfloor.org> - 2017-08-31 21:50 +0200
  [PATCH v3 11/11] perf, tools, stat: Update walltime_nsecs_stats in interval mode Andi Kleen <andi@firstfloor.org> - 2017-08-31 21:50 +0200
  [PATCH v3 06/11] perf, tools, stat: Support JSON metrics in perf stat Andi Kleen <andi@firstfloor.org> - 2017-08-31 21:50 +0200
    Re: [PATCH v3 06/11] perf, tools, stat: Support JSON metrics in perf  stat Arnaldo Carvalho de Melo <acme@kernel.org> - 2017-09-04 19:20 +0200
      Re: [PATCH v3 06/11] perf, tools, stat: Support JSON metrics in perf  stat Andi Kleen <andi@firstfloor.org> - 2017-09-04 19:40 +0200
        Re: [PATCH v3 06/11] perf, tools, stat: Support JSON metrics in perf  stat Arnaldo Carvalho de Melo <acme@kernel.org> - 2017-09-05 20:10 +0200
          Re: [PATCH v3 06/11] perf, tools, stat: Support JSON metrics in perf  stat Arnaldo Carvalho de Melo <acme@kernel.org> - 2017-09-05 20:20 +0200
            Re: [PATCH v3 06/11] perf, tools, stat: Support JSON metrics in perf  stat Arnaldo Carvalho de Melo <acme@kernel.org> - 2017-09-05 20:40 +0200
          Re: [PATCH v3 06/11] perf, tools, stat: Support JSON metrics in perf  stat Andi Kleen <ak@linux.intel.com> - 2017-09-05 20:30 +0200
            Re: [PATCH v3 06/11] perf, tools, stat: Support JSON metrics in perf  stat Arnaldo Carvalho de Melo <acme@kernel.org> - 2017-09-05 21:00 +0200
              Re: [PATCH v3 06/11] perf, tools, stat: Support JSON metrics in perf  stat Andi Kleen <andi@firstfloor.org> - 2017-09-05 22:00 +0200
                Re: [PATCH v3 06/11] perf, tools, stat: Support JSON metrics in perf  stat Arnaldo Carvalho de Melo <acme@kernel.org> - 2017-09-05 22:10 +0200
                Re: [PATCH v3 06/11] perf, tools, stat: Support JSON metrics in perf  stat Andi Kleen <ak@linux.intel.com> - 2017-09-05 22:40 +0200
                Re: [PATCH v3 06/11] perf, tools, stat: Support JSON metrics in perf  stat Arnaldo Carvalho de Melo <acme@kernel.org> - 2017-09-08 20:20 +0200
                Re: [PATCH v3 06/11] perf, tools, stat: Support JSON metrics in perf  stat Andi Kleen <ak@linux.intel.com> - 2017-09-08 21:10 +0200
  [PATCH v3 04/11] perf, tools: Print generic metric header even for failed expressions Andi Kleen <andi@firstfloor.org> - 2017-08-31 21:50 +0200
  [PATCH v3 10/11] perf, tools, stat: Hide internal duration_time counter Andi Kleen <andi@firstfloor.org> - 2017-08-31 21:50 +0200
  [PATCH v3 09/11] perf, tools, stat: Support duration_time for metrics Andi Kleen <andi@firstfloor.org> - 2017-08-31 21:50 +0200
  [PATCH v3 01/11] perf, tools: Support weak groups Andi Kleen <andi@firstfloor.org> - 2017-08-31 21:50 +0200
    Re: [PATCH v3 01/11] perf, tools: Support weak groups Jiri Olsa <jolsa@redhat.com> - 2017-09-01 19:00 +0200
      Re: [PATCH v3 01/11] perf, tools: Support weak groups Jiri Olsa <jolsa@redhat.com> - 2017-09-01 19:10 +0200
        Re: [PATCH v3 01/11] perf, tools: Support weak groups Arnaldo Carvalho de Melo <acme@kernel.org> - 2017-09-04 19:00 +0200
  [PATCH v3 08/11] perf, tools, stat: Don't use ctx for saved values lookup Andi Kleen <andi@firstfloor.org> - 2017-08-31 21:50 +0200
  Re: Support standalone metrics and metric groups for perf Jiri Olsa <jolsa@redhat.com> - 2017-09-01 19:30 +0200
    Re: Support standalone metrics and metric groups for perf Jiri Olsa <jolsa@redhat.com> - 2017-09-01 19:40 +0200
    Re: Support standalone metrics and metric groups for perf Andi Kleen <andi@firstfloor.org> - 2017-09-01 19:50 +0200
      Re: Support standalone metrics and metric groups for perf Jiri Olsa <jolsa@redhat.com> - 2017-09-01 20:00 +0200

csiph-web