Messages in this thread Patch in this message | | | Date | Wed, 12 May 2004 22:35:00 +0200 | From | Ingo Molnar <> | Subject | Re: MSEC_TO_JIFFIES is messed up... |
| |
* Ingo Molnar <mingo@elte.hu> wrote:
> the attached patch (against BK-curr) cleans this up and makes the > defines generic and arch-independent.
new patch attached - this adopts the overflow-safe variant from sctp.h, removes it from sctp.h and moves it into a generic include file and also does the HZ=1000 simplification.
Ingo --- linux/include/linux/time.h.orig +++ linux/include/linux/time.h @@ -177,6 +177,17 @@ struct timezone { (SH_DIV((MAX_JIFFY_OFFSET >> SEC_JIFFIE_SC) * TICK_NSEC, NSEC_PER_SEC, 1) - 1) #endif + +#if HZ == 1000 +# define JIFFIES_TO_MSEC(x) (x) +# define MSEC_TO_JIFFIES(x) (x) +#else +#define MSECS_TO_JIFFIES(msec) \ + (((msec / 1000) * HZ) + ((msec % 1000) * HZ) / 1000) +#define JIFFIES_TO_MSECS(jiff) \ + (((jiff / HZ) * 1000) + ((jiff % HZ) * 1000) / HZ) +#endif + /* * The TICK_NSEC - 1 rounds up the value to the next resolution. Note * that a remainder subtract here would not do the right thing as the --- linux/include/net/sctp/sctp.h.orig +++ linux/include/net/sctp/sctp.h @@ -116,11 +116,6 @@ #define SCTP_STATIC static #endif -#define MSECS_TO_JIFFIES(msec) \ - (((msec / 1000) * HZ) + ((msec % 1000) * HZ) / 1000) -#define JIFFIES_TO_MSECS(jiff) \ - (((jiff / HZ) * 1000) + ((jiff % HZ) * 1000) / HZ) - /* * Function declarations. */ --- linux/include/asm-i386/param.h.orig +++ linux/include/asm-i386/param.h @@ -5,8 +5,6 @@ # define HZ 1000 /* Internal kernel timer frequency */ # define USER_HZ 100 /* .. some user interfaces are in "ticks" */ # define CLOCKS_PER_SEC (USER_HZ) /* like times() */ -# define JIFFIES_TO_MSEC(x) (x) -# define MSEC_TO_JIFFIES(x) (x) #endif #ifndef HZ --- linux/kernel/sched.c.orig +++ linux/kernel/sched.c @@ -75,13 +75,6 @@ #define NS_TO_JIFFIES(TIME) ((TIME) / (1000000000 / HZ)) #define JIFFIES_TO_NS(TIME) ((TIME) * (1000000000 / HZ)) -#ifndef JIFFIES_TO_MSEC -# define JIFFIES_TO_MSEC(x) ((x) * 1000 / HZ) -#endif -#ifndef MSEC_TO_JIFFIES -# define MSEC_TO_JIFFIES(x) ((x) * HZ / 1000) -#endif - /* * These are the 'tuning knobs' of the scheduler: *
| |