From: George Anzinger , Petri Kaukasoina btime in /proc/stat does not stay constant but decreases at a rate of 15 secs/day, because we're assuming that HZ is exactly 100. Use the correct adjustments to fix that up. --- 25-akpm/fs/proc/proc_misc.c | 19 ++++--------------- 1 files changed, 4 insertions(+), 15 deletions(-) diff -puN fs/proc/proc_misc.c~proc-stat-btime-fix-2 fs/proc/proc_misc.c --- 25/fs/proc/proc_misc.c~proc-stat-btime-fix-2 Tue Jan 27 17:46:57 2004 +++ 25-akpm/fs/proc/proc_misc.c Tue Jan 27 17:46:57 2004 @@ -360,23 +360,12 @@ int show_stat(struct seq_file *p, void * { int i; extern unsigned long total_forks; - u64 jif; + unsigned long jif; unsigned int sum = 0, user = 0, nice = 0, system = 0, idle = 0, iowait = 0, irq = 0, softirq = 0; - struct timeval now; - unsigned long seq; - /* Atomically read jiffies and time of day */ - do { - seq = read_seqbegin(&xtime_lock); - - jif = get_jiffies_64(); - do_gettimeofday(&now); - } while (read_seqretry(&xtime_lock, seq)); - - /* calc # of seconds since boot time */ - jif -= INITIAL_JIFFIES; - jif = ((u64)now.tv_sec * HZ) + (now.tv_usec/(1000000/HZ)) - jif; - do_div(jif, HZ); + jif = - wall_to_monotonic.tv_sec; + if (wall_to_monotonic.tv_nsec) + --jif; for_each_cpu(i) { int j; _