mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-07-27 14:28:05 +00:00
6203cbca5c
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
88 lines
3.2 KiB
Diff
88 lines
3.2 KiB
Diff
From ec9436c865d11ebd0fd6909a9ef2a63e5536ff29 Mon Sep 17 00:00:00 2001
|
|
From: Andreas Schwab <schwab@linux-m68k.org>
|
|
Date: Fri, 9 Dec 2011 11:35:08 +0000
|
|
Subject: [PATCH 085/109] powerpc: Fix wrong divisor in usecs_to_cputime
|
|
|
|
commit 9f5072d4f63f28d30d343573830ac6c85fc0deff upstream.
|
|
|
|
Commit d57af9b (taskstats: use real microsecond granularity for CPU times)
|
|
renamed msecs_to_cputime to usecs_to_cputime, but failed to update all
|
|
numbers on the way. This causes nonsensical cpu idle/iowait values to be
|
|
displayed in /proc/stat (the only user of usecs_to_cputime so far).
|
|
|
|
This also renames __cputime_msec_factor to __cputime_usec_factor, adapting
|
|
its value and using it directly in cputime_to_usecs instead of doing two
|
|
multiplications.
|
|
|
|
Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
|
|
Acked-by: Anton Blanchard <anton@samba.org>
|
|
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
|
|
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|
---
|
|
arch/powerpc/include/asm/cputime.h | 6 +++---
|
|
arch/powerpc/kernel/time.c | 10 +++++-----
|
|
2 files changed, 8 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/arch/powerpc/include/asm/cputime.h b/arch/powerpc/include/asm/cputime.h
|
|
index 98b7c4b..fa3f921 100644
|
|
--- a/arch/powerpc/include/asm/cputime.h
|
|
+++ b/arch/powerpc/include/asm/cputime.h
|
|
@@ -126,11 +126,11 @@ static inline u64 cputime64_to_jiffies64(const cputime_t ct)
|
|
/*
|
|
* Convert cputime <-> microseconds
|
|
*/
|
|
-extern u64 __cputime_msec_factor;
|
|
+extern u64 __cputime_usec_factor;
|
|
|
|
static inline unsigned long cputime_to_usecs(const cputime_t ct)
|
|
{
|
|
- return mulhdu(ct, __cputime_msec_factor) * USEC_PER_MSEC;
|
|
+ return mulhdu(ct, __cputime_usec_factor);
|
|
}
|
|
|
|
static inline cputime_t usecs_to_cputime(const unsigned long us)
|
|
@@ -143,7 +143,7 @@ static inline cputime_t usecs_to_cputime(const unsigned long us)
|
|
sec = us / 1000000;
|
|
if (ct) {
|
|
ct *= tb_ticks_per_sec;
|
|
- do_div(ct, 1000);
|
|
+ do_div(ct, 1000000);
|
|
}
|
|
if (sec)
|
|
ct += (cputime_t) sec * tb_ticks_per_sec;
|
|
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
|
|
index 5db163c..ec8affe 100644
|
|
--- a/arch/powerpc/kernel/time.c
|
|
+++ b/arch/powerpc/kernel/time.c
|
|
@@ -168,13 +168,13 @@ EXPORT_SYMBOL_GPL(ppc_tb_freq);
|
|
#ifdef CONFIG_VIRT_CPU_ACCOUNTING
|
|
/*
|
|
* Factors for converting from cputime_t (timebase ticks) to
|
|
- * jiffies, milliseconds, seconds, and clock_t (1/USER_HZ seconds).
|
|
+ * jiffies, microseconds, seconds, and clock_t (1/USER_HZ seconds).
|
|
* These are all stored as 0.64 fixed-point binary fractions.
|
|
*/
|
|
u64 __cputime_jiffies_factor;
|
|
EXPORT_SYMBOL(__cputime_jiffies_factor);
|
|
-u64 __cputime_msec_factor;
|
|
-EXPORT_SYMBOL(__cputime_msec_factor);
|
|
+u64 __cputime_usec_factor;
|
|
+EXPORT_SYMBOL(__cputime_usec_factor);
|
|
u64 __cputime_sec_factor;
|
|
EXPORT_SYMBOL(__cputime_sec_factor);
|
|
u64 __cputime_clockt_factor;
|
|
@@ -192,8 +192,8 @@ static void calc_cputime_factors(void)
|
|
|
|
div128_by_32(HZ, 0, tb_ticks_per_sec, &res);
|
|
__cputime_jiffies_factor = res.result_low;
|
|
- div128_by_32(1000, 0, tb_ticks_per_sec, &res);
|
|
- __cputime_msec_factor = res.result_low;
|
|
+ div128_by_32(1000000, 0, tb_ticks_per_sec, &res);
|
|
+ __cputime_usec_factor = res.result_low;
|
|
div128_by_32(1, 0, tb_ticks_per_sec, &res);
|
|
__cputime_sec_factor = res.result_low;
|
|
div128_by_32(USER_HZ, 0, tb_ticks_per_sec, &res);
|
|
--
|
|
1.7.7.6
|
|
|