lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 10 Mar 2016 06:27:17 -0800
From:	Andi Kleen <andi@...stfloor.org>
To:	acme@...nel.org
Cc:	jolsa@...nel.org, linux-kernel@...r.kernel.org,
	Andi Kleen <ak@...ux.intel.com>
Subject: [PATCH] perf, tools, stat: Print warning when no metric with --metric-only

From: Andi Kleen <ak@...ux.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@...ux.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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ