Re: [Patch] Re: Nasty suprise with uptime

Andreas Dilger
2001-10-31T21:46:57Z

On Oct 31, 2001 22:11 +0000, Petr Vandrovec wrote:
> this reminds me. Year or so ago there was patch from someone, which
> detected jiffies overflow in /proc/uptime proc_read() code, so only thing
> you had to do was run 'uptime', 'w', 'top' or something like that
> every 497 days - you can schedule it as cron job for Jan 1, 0:00:00,
> to find some workoholics.

Sorry, your posting is 14 minutes too late ;-). I just re-invented this
wheel. Such is the pace of Linux kernel development.

> static unsigned long long jiffies_hi = 0;
> static unsigned long old_jiffies = 0;
> unsigned long jiffy_cache;
>
> /* some spinlock or inode lock or something like that */
> jiffy_cache = jiffies;
> if (jiffy_cache < old_jiffies) {
> jiffies_hi += 1ULL << BITS_PER_LONG;
> }

Ah, my code only stored the high 32 bits of the jiffies_hi, so we don't
ever do 64-bit math for this, only a simple increment. Otherwise it is
exactly the same, including the "some spinlock or something" comment ;-).

Cheers, Andreas
--
Andreas Dilger