mirror of https://gitee.com/openkylin/linux.git
perf_counter tools: Print 'CPU utilization factor' in builtin-stat
Before: Performance counter stats for '/home/mingo/hackbench': 5728.862689 task clock ticks (msecs) 34426 context switches # 0.006 M/sec 3835 CPU migrations # 0.001 M/sec 18158 pagefaults # 0.003 M/sec 16218109156 CPU cycles # 2830.947 M/sec 13519616840 instructions # 2359.913 M/sec 55941661 cache references # 9.765 M/sec 23554938 cache misses # 4.112 M/sec Wall-clock time elapsed: 528.886980 msecs After: Performance counter stats for '/home/mingo/hackbench': 5845.443541 task clock ticks # 11.886 CPU utilization factor 38289 context switches # 0.007 M/sec 4208 CPU migrations # 0.001 M/sec 17755 pagefaults # 0.003 M/sec 16664668576 CPU cycles # 2850.882 M/sec 13468113991 instructions # 2304.036 M/sec 57445468 cache references # 9.827 M/sec 26896502 cache misses # 4.601 M/sec Wall-clock time elapsed: 491.802357 msecs Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com> Cc: Marcelo Tosatti <mtosatti@redhat.com> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: John Kacur <jkacur@redhat.com> LKML-Reference: <new-submission> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
c44613a4c1
commit
d7c29318c2
|
@ -75,6 +75,7 @@ static __u64 event_res[MAX_COUNTERS][3];
|
|||
static __u64 event_scaled[MAX_COUNTERS];
|
||||
|
||||
static __u64 runtime_nsecs;
|
||||
static __u64 walltime_nsecs;
|
||||
|
||||
static void create_perfstat_counter(int counter)
|
||||
{
|
||||
|
@ -194,13 +195,19 @@ static void print_counter(int counter)
|
|||
if (nsec_counter(counter)) {
|
||||
double msecs = (double)count[0] / 1000000;
|
||||
|
||||
fprintf(stderr, " %14.6f %-20s (msecs)",
|
||||
fprintf(stderr, " %14.6f %-20s",
|
||||
msecs, event_name(counter));
|
||||
if (event_id[counter] ==
|
||||
EID(PERF_TYPE_SOFTWARE, PERF_COUNT_TASK_CLOCK)) {
|
||||
|
||||
fprintf(stderr, " # %11.3f CPU utilization factor",
|
||||
(double)count[0] / (double)walltime_nsecs);
|
||||
}
|
||||
} else {
|
||||
fprintf(stderr, " %14Ld %-20s",
|
||||
count[0], event_name(counter));
|
||||
if (runtime_nsecs)
|
||||
fprintf(stderr, " # %12.3f M/sec",
|
||||
fprintf(stderr, " # %11.3f M/sec",
|
||||
(double)count[0]/runtime_nsecs*1000.0);
|
||||
}
|
||||
if (scaled)
|
||||
|
@ -241,6 +248,8 @@ static int do_perfstat(int argc, const char **argv)
|
|||
prctl(PR_TASK_PERF_COUNTERS_DISABLE);
|
||||
t1 = rdclock();
|
||||
|
||||
walltime_nsecs = t1 - t0;
|
||||
|
||||
fflush(stdout);
|
||||
|
||||
fprintf(stderr, "\n");
|
||||
|
|
Loading…
Reference in New Issue