Commit 7255fe2a authored by Lucas De Marchi's avatar Lucas De Marchi Committed by Ingo Molnar

perf stat: Do not print ratio when task-clock event is not counted

The ratio between the number of events and the time elapsed makes
sense only if task-clock event is counted. Otherwise it will be
simply a (confusing)

	#      0.000 M/sec

This patch outputs the ratio only if task-clock event is counted.
Some test examples of before and after:

Before:

 [lucas@skywalker linux.trees.git]$ sudo perf stat -e branch-misses -a -- sleep 1

	 Performance counter stats for 'sleep 1':

		1367818  branch-misses            #      0.000 M/sec

	    1.001494325  seconds time elapsed

After (without task-clock):

 [lucas@skywalker perf]$ sudo ./perf stat -e branch-misses -a -- sleep 1

	 Performance counter stats for 'sleep 1':

		1135044  branch-misses

	    1.001370775  seconds time elapsed

After (with task-clock):

 [lucas@skywalker perf]$ sudo ./perf stat -e branch-misses -e task-clock -a -- sleep 1

	 Performance counter stats for 'sleep 1':

		1070111  branch-misses            #      0.534 M/sec
	    2002.730893  task-clock-msecs         #      1.999 CPUs

	    1.001640292  seconds time elapsed
Signed-off-by: default avatarLucas De Marchi <lucas.de.marchi@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
LKML-Reference: <20091115140507.GB21561@skywalker.lan>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent d2fb8b41
...@@ -357,7 +357,8 @@ static void abs_printout(int counter, double avg) ...@@ -357,7 +357,8 @@ static void abs_printout(int counter, double avg)
ratio = avg / total; ratio = avg / total;
fprintf(stderr, " # %10.3f IPC ", ratio); fprintf(stderr, " # %10.3f IPC ", ratio);
} else if (MATCH_EVENT(HARDWARE, HW_BRANCH_MISSES, counter)) { } else if (MATCH_EVENT(HARDWARE, HW_BRANCH_MISSES, counter) &&
runtime_branches_stats.n != 0) {
total = avg_stats(&runtime_branches_stats); total = avg_stats(&runtime_branches_stats);
if (total) if (total)
...@@ -365,7 +366,7 @@ static void abs_printout(int counter, double avg) ...@@ -365,7 +366,7 @@ static void abs_printout(int counter, double avg)
fprintf(stderr, " # %10.3f %% ", ratio); fprintf(stderr, " # %10.3f %% ", ratio);
} else { } else if (runtime_nsecs_stats.n != 0) {
total = avg_stats(&runtime_nsecs_stats); total = avg_stats(&runtime_nsecs_stats);
if (total) if (total)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment