summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2007-10-07 11:24:31 +0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-10-10 21:50:16 +0400
commitceda57cf82ec93444e7d86755e6d43ab11c1b50d (patch)
treeaede8290faf64210c263a9f7eff333d3d279af67
parent433d028c427f90a2ab38b6eab752e19cd1ac9981 (diff)
downloadlinux-ceda57cf82ec93444e7d86755e6d43ab11c1b50d.tar.xz
Fix timer_stats printout of events/sec
commit 74922be1485818ed368c4cf4f0b100f70bf01e08 upstream. 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> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-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 7bb561d0f570..5717cfb9b080 100644
--- a/kernel/time/timer_stats.c
+++ b/kernel/time/timer_stats.c
@@ -319,8 +319,9 @@ static int tstats_show(struct seq_file *m, void *v)
ms = 1;
if (events && period.tv_sec)
- seq_printf(m, "%ld total events, %ld.%ld events/sec\n", events,
- events / period.tv_sec, events * 1000 / ms);
+ seq_printf(m, "%ld total events, %ld.%03ld events/sec\n",
+ events, events * 1000 / ms,
+ (events * 1000000 / ms) % 1000);
else
seq_printf(m, "%ld total events\n", events);