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


Groups > linux.kernel > #1355159 > unrolled thread

[PATCH] perf, tools, stat: Print warning when no metric with --metric-only

Started byAndi Kleen <andi@firstfloor.org>
First post2016-03-10 15:30 +0100
Last post2016-03-12 00:10 +0100
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] perf, tools, stat: Print warning when no metric with --metric-only Andi Kleen <andi@firstfloor.org> - 2016-03-10 15:30 +0100
    Re: [PATCH] perf, tools, stat: Print warning when no metric with  --metric-only Jiri Olsa <jolsa@redhat.com> - 2016-03-11 09:10 +0100
      Re: [PATCH] perf, tools, stat: Print warning when no metric with  --metric-only Andi Kleen <andi@firstfloor.org> - 2016-03-12 00:10 +0100

#1355159 — [PATCH] perf, tools, stat: Print warning when no metric with --metric-only

FromAndi Kleen <andi@firstfloor.org>
Date2016-03-10 15:30 +0100
Subject[PATCH] perf, tools, stat: Print warning when no metric with --metric-only
Message-ID<rb9Ld-89a-27@gated-at.bofh.it>
From: Andi Kleen <ak@linux.intel.com>

Print a warning when --metric-only is specified, but the events
define no metric. Requested by Jiri.

% perf stat -e cycles --metric-only true

 Performance counter stats for 'true':

No metrics defined by configured events

       0.001612070 seconds time elapsed

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

diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 1f19f2f..70efb58 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -743,6 +743,7 @@ struct outstate {
 	int  nfields;
 	int  id, nr;
 	struct perf_evsel *evsel;
+	int nheaders;
 };
 
 #define METRIC_LEN  35
@@ -919,6 +920,7 @@ static void print_metric_header(void *ctx, const char *color __maybe_unused,
 		fprintf(os->fh, "%s%s", unit, csv_sep);
 	else
 		fprintf(os->fh, "%-*s ", METRIC_ONLY_LEN, unit);
+	os->nheaders++;
 }
 
 static void nsec_printout(int id, int nr, struct perf_evsel *evsel, double avg)
@@ -1315,6 +1317,8 @@ static void print_metric_headers(char *prefix)
 					      &out);
 	}
 	fputc('\n', stat_config.output);
+	if (os.nheaders == 0)
+		pr_warning("No metrics defined by configured events\n");
 }
 
 static void print_interval(char *prefix, struct timespec *ts)
-- 
2.5.0

[toc] | [next] | [standalone]


#1355676 — Re: [PATCH] perf, tools, stat: Print warning when no metric with --metric-only

FromJiri Olsa <jolsa@redhat.com>
Date2016-03-11 09:10 +0100
SubjectRe: [PATCH] perf, tools, stat: Print warning when no metric with --metric-only
Message-ID<rbqj0-3fw-11@gated-at.bofh.it>
In reply to#1355159
On Thu, Mar 10, 2016 at 06:27:17AM -0800, Andi Kleen wrote:
> From: Andi Kleen <ak@linux.intel.com>
> 
> Print a warning when --metric-only is specified, but the events
> define no metric. Requested by Jiri.
> 
> % perf stat -e cycles --metric-only true
> 
>  Performance counter stats for 'true':
> 
> No metrics defined by configured events
> 
>        0.001612070 seconds time elapsed
> 

how about printing the 'time' column and keeping the warning on the header line?


[jolsa@krava perf]$ sudo ./perf stat -a -I 1000 --metric-only 
            time insn per cycle       branch-misses of all branches 
     1.000370422    0.30                6.77%                      
     2.000749536    0.40                5.75%                      
     3.001007542    0.28                5.38%                      
     4.001324779    0.57                5.83%                      
^C     4.011558899    0.01                0.12%                      

[jolsa@krava perf]$ sudo ./perf stat -a -I 1000 --metric-only -e cycles
            time No metrics defined by configured events
     1.000211156 
     2.000432519 


thanks,
jirka


---
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 91188047be6a..9ce4138a8065 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1302,7 +1302,7 @@ static void print_metric_headers(char *prefix)
 	};
 
 	if (prefix)
-		fprintf(stat_config.output, "%s", prefix);
+		fprintf(stat_config.output, "%16s ", "time");
 
 	if (!csv_output)
 		fprintf(stat_config.output, "%*s",
@@ -1319,9 +1319,9 @@ static void print_metric_headers(char *prefix)
 					      0,
 					      &out);
 	}
-	fputc('\n', stat_config.output);
 	if (os.nheaders == 0)
-		pr_warning("No metrics defined by configured events\n");
+		pr_warning("No metrics defined by configured events");
+	fputc('\n', stat_config.output);
 }
 
 static void print_interval(char *prefix, struct timespec *ts)

[toc] | [prev] | [next] | [standalone]


#1356264 — Re: [PATCH] perf, tools, stat: Print warning when no metric with --metric-only

FromAndi Kleen <andi@firstfloor.org>
Date2016-03-12 00:10 +0100
SubjectRe: [PATCH] perf, tools, stat: Print warning when no metric with --metric-only
Message-ID<rbElY-54U-23@gated-at.bofh.it>
In reply to#1355676
> [jolsa@krava perf]$ sudo ./perf stat -a -I 1000 --metric-only 
>             time insn per cycle       branch-misses of all branches 
>      1.000370422    0.30                6.77%                      
>      2.000749536    0.40                5.75%                      
>      3.001007542    0.28                5.38%                      
>      4.001324779    0.57                5.83%                      
> ^C     4.011558899    0.01                0.12%                      
> 
> [jolsa@krava perf]$ sudo ./perf stat -a -I 1000 --metric-only -e cycles
>             time No metrics defined by configured events
>      1.000211156 
>      2.000432519 

Looks good to me. Please submit it.

-Andi

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web