Re: [Patch] Re: Nasty suprise with uptime

Tim Schmielau
2001-10-31T21:06:31Z

On Wed, 31 Oct 2001, Andreas Dilger wrote:

> What about the following. Since jiffies wraps are extremely rare, it
> should be enough to have something along the lines of the following
> in the uptime code only (or globally accessible for any code that
> needs to use a full 64-bit jiffies value):
>
> u64 get_jiffies64(void)
> {
> static unsigned long jiffies_hi = 0;
> static unsigned long jiffies_last = INITIAL_JIFFIES;
>
> /* probably need locking for this part */
> if (jiffies < jiffies_last) { /* We have a wrap */
> jiffies_hi++;
> jiffies_last = jiffies;
> }
>
> return (jiffies | ((u64)jiffies_hi) << LONG_SHIFT));
> }
>
> This means you need to call something that _checks_ the uptime
> (or needs the 64-bit jiffies value) at least once every 1.3 years.
> If you don't do it at least that often, you probably don't care
> about the uptime anyways.
>
> This only impacts anything that really needs a 64-bit jiffies count,
> and has zero impact everywhere else.
>

I initially thought of that too. My objection was that boxes with long
uptimes typically get forgotten in a corner until years later someone
checks uptime again.

However, I fully agree with your importance argument and believe this
proposal to be the best one.

Tim