Optimize the cases where HZ is a divisor of 1000 or vice-versa in
JIFFIES_TO_MSECS() and MSECS_TO_JIFFIES() by allowing the nonvanishing(!)
integral ratios to appear as a parenthesized expressions eligible for
constant folding optimizations.
-- wli
Index: linux-2.5/include/linux/time.h
===================================================================
--- linux-2.5.orig/include/linux/time.h 2004-05-12 15:04:10.000000000 -0700
+++ linux-2.5/include/linux/time.h 2004-05-12 15:12:49.000000000 -0700
@@ -184,12 +184,12 @@
* Avoid unnecessary multiplications/divisions in the
* two most common HZ cases:
*/
-#if HZ == 1000
-# define JIFFIES_TO_MSECS(x) (x)
-# define MSECS_TO_JIFFIES(x) (x)
-#elif HZ == 100
-# define JIFFIES_TO_MSECS(x) ((x) * 10)
-# define MSECS_TO_JIFFIES(x) (((x) + 9) / 10)
+#if HZ <= 1000 && !(1000 % HZ)
+# define JIFFIES_TO_MSECS(j) ((1000/HZ)*(j))
+# define MSECS_TO_JIFFIES(m) (((m) + (1000/HZ) - 1)/(1000/HZ))
+#elif HZ > 1000 && !(HZ % 1000)
+# define JIFFIES_TO_MSECS(j) (((j) + (HZ/1000) - 1)/(HZ/1000))
+# define MSECS_TO_JIFFIES(m) ((m)*(HZ/1000))
#else
# define JIFFIES_TO_MSECS(x) (((x) * 1000) / HZ)
# define MSECS_TO_JIFFIES(x) (((x) * HZ + 999) / 1000)
Attachment:
PGP.sig
Description: This is a digitally signed message part