aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/time/timer_stats.c
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2007-10-07 03:24:31 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-07 19:28:43 -0400
commit74922be1485818ed368c4cf4f0b100f70bf01e08 (patch)
treeb283c44086bd83dc7c61dbed25218efd01cc46b0 /kernel/time/timer_stats.c
parent0c2043abefacac97b6d01129c1123a466c95b7c1 (diff)
Fix timer_stats printout of events/sec
When using /proc/timer_stats on ppc64 I noticed the events/sec field wasnt accurate. Sometimes the integer part was incorrect due to rounding (we werent taking the fractional seconds into consideration). The fraction part is also wrong, we need to pad the printf statement and take the bottom three digits of 1000 times the value. Signed-off-by: Anton Blanchard <anton@samba.org> Acked-by: Ingo Molnar <mingo@elte.hu> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/time/timer_stats.c')
-rw-r--r--kernel/time/timer_stats.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/time/timer_stats.c b/kernel/time/timer_stats.c
index 3c38fb5eae1..c36bb7ed030 100644
--- a/kernel/time/timer_stats.c
+++ b/kernel/time/timer_stats.c
@@ -327,8 +327,9 @@ static int tstats_show(struct seq_file *m, void *v)
327 ms = 1; 327 ms = 1;
328 328
329 if (events && period.tv_sec) 329 if (events && period.tv_sec)
330 seq_printf(m, "%ld total events, %ld.%ld events/sec\n", events, 330 seq_printf(m, "%ld total events, %ld.%03ld events/sec\n",
331 events / period.tv_sec, events * 1000 / ms); 331 events, events * 1000 / ms,
332 (events * 1000000 / ms) % 1000);
332 else 333 else
333 seq_printf(m, "%ld total events\n", events); 334 seq_printf(m, "%ld total events\n", events);
334 335