All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf, tools, stat: Fix perf stat -T
@ 2015-07-27 23:24 Andi Kleen
  2015-07-28 14:10 ` Jiri Olsa
  2015-07-31 13:48 ` [tip:perf/core] perf stat: Fix transaction lenght metrics tip-bot for Andi Kleen
  0 siblings, 2 replies; 8+ messages in thread
From: Andi Kleen @ 2015-07-27 23:24 UTC (permalink / raw)
  To: acme; +Cc: linux-kernel, Andi Kleen, jolsa

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

The transaction length metrics in perf stat -T broke recently.
It would not match the metric correctly and always print K/sec.
This was caused by a incorrect update of the cycles_in_tx statistics.
Update the correct variable.

Also the check for zero division was reversed, which resulted
in K/sec being printed for no transactions. Fix this also up.

Cc: jolsa@kernel.org
Signed-off-by: Andi Kleen <ak@linux.intel.com>
---
 tools/perf/util/stat-shadow.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
index 53e8bb7..2a5d8d7 100644
--- a/tools/perf/util/stat-shadow.c
+++ b/tools/perf/util/stat-shadow.c
@@ -85,7 +85,7 @@ void perf_stat__update_shadow_stats(struct perf_evsel *counter, u64 *count,
 	else if (perf_evsel__match(counter, HARDWARE, HW_CPU_CYCLES))
 		update_stats(&runtime_cycles_stats[ctx][cpu], count[0]);
 	else if (perf_stat_evsel__is(counter, CYCLES_IN_TX))
-		update_stats(&runtime_transaction_stats[ctx][cpu], count[0]);
+		update_stats(&runtime_cycles_in_tx_stats[ctx][cpu], count[0]);
 	else if (perf_stat_evsel__is(counter, TRANSACTION_START))
 		update_stats(&runtime_transaction_stats[ctx][cpu], count[0]);
 	else if (perf_stat_evsel__is(counter, ELISION_START))
@@ -398,20 +398,18 @@ void perf_stat__print_shadow_stats(FILE *out, struct perf_evsel *evsel,
 				" #   %5.2f%% aborted cycles         ",
 				100.0 * ((total2-avg) / total));
 	} else if (perf_stat_evsel__is(evsel, TRANSACTION_START) &&
-		   avg > 0 &&
 		   runtime_cycles_in_tx_stats[ctx][cpu].n != 0) {
 		total = avg_stats(&runtime_cycles_in_tx_stats[ctx][cpu]);
 
-		if (total)
+		if (avg)
 			ratio = total / avg;
 
 		fprintf(out, " # %8.0f cycles / transaction   ", ratio);
 	} else if (perf_stat_evsel__is(evsel, ELISION_START) &&
-		   avg > 0 &&
 		   runtime_cycles_in_tx_stats[ctx][cpu].n != 0) {
 		total = avg_stats(&runtime_cycles_in_tx_stats[ctx][cpu]);
 
-		if (total)
+		if (avg)
 			ratio = total / avg;
 
 		fprintf(out, " # %8.0f cycles / elision       ", ratio);
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2015-07-31 13:49 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-27 23:24 [PATCH] perf, tools, stat: Fix perf stat -T Andi Kleen
2015-07-28 14:10 ` Jiri Olsa
2015-07-28 14:21   ` Arnaldo Carvalho de Melo
2015-07-28 14:30     ` Jiri Olsa
2015-07-28 14:32       ` Arnaldo Carvalho de Melo
2015-07-28 14:37         ` Jiri Olsa
2015-07-28 17:25           ` Andi Kleen
2015-07-31 13:48 ` [tip:perf/core] perf stat: Fix transaction lenght metrics tip-bot for Andi Kleen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.