From 1e1a156e69668e49b43e3cefef61afc9d67904a7 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 29 May 2009 09:10:54 +0200 Subject: [PATCH] --- yaml --- r: 147571 b: refs/heads/master c: be1ac0d81d0e3ab655f8c8ade31fb860ef6aa186 h: refs/heads/master i: 147569: d9b63b028cab9961b14a8e256ef988f2023da69f 147567: 6f3408624aa6e131cbb9798266edf94b15f050d4 v: v3 --- [refs] | 2 +- trunk/Documentation/perf_counter/builtin-stat.c | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 727b4050f6b7..b35d8332b730 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2996f5ddb7ba8889caeeac65edafe48845106eaa +refs/heads/master: be1ac0d81d0e3ab655f8c8ade31fb860ef6aa186 diff --git a/trunk/Documentation/perf_counter/builtin-stat.c b/trunk/Documentation/perf_counter/builtin-stat.c index 0c92eb725526..ef7e0e1192cb 100644 --- a/trunk/Documentation/perf_counter/builtin-stat.c +++ b/trunk/Documentation/perf_counter/builtin-stat.c @@ -74,6 +74,8 @@ static const unsigned int default_count[] = { static __u64 event_res[MAX_COUNTERS][3]; static __u64 event_scaled[MAX_COUNTERS]; +static __u64 runtime_nsecs; + static void create_perfstat_counter(int counter) { struct perf_counter_hw_event hw_event; @@ -165,6 +167,11 @@ static void read_counter(int counter) ((double)count[0] * count[1] / count[2] + 0.5); } } + /* + * Save the full runtime - to allow normalization during printout: + */ + if (event_id[counter] == EID(PERF_TYPE_SOFTWARE, PERF_COUNT_TASK_CLOCK)) + runtime_nsecs = count[0]; } /* @@ -190,8 +197,11 @@ static void print_counter(int counter) fprintf(stderr, " %14.6f %-20s (msecs)", msecs, event_name(counter)); } else { - fprintf(stderr, " %14Ld %-20s (events)", + fprintf(stderr, " %14Ld %-20s", count[0], event_name(counter)); + if (runtime_nsecs) + fprintf(stderr, " # %12.3f M/sec", + (double)count[0]/runtime_nsecs*1000.0); } if (scaled) fprintf(stderr, " (scaled from %.2f%%)",