[lkml]   [2002]   [Apr]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Unknown HZ value! (1908) Assume 1024.
Tim Schmielau writes:
> On Wed, 20 Feb 2002, Tom Holroyd wrote:

>>>> jif * smp_num_cpus - (user + nice + system)
>>> Changing the line to this:
>>> jif * smp_num_cpus - user - nice - system
>>> should avoid the overflow.
>> True. It still might be a good idea to make them longs, though,
>> because they are really totals of all the CPUs, as in:
>> user += kstat.per_cpu_user[cpu];
>> Now ultimately, kstat.per_cpu_user[cpu] will overflow, and I don't
>> know what to do about that, but making user, nice, and system unsigned
>> long will at least allow SMP systems to last a little while longer.
>> (Actually I don't know why Procps needs these values at all -- the
>> claim in the code is that all of this is just to compute the HZ value,
>> which is presumably needed to be able to interpret jiffies. It'd be a
>> lot simpler just to have /proc/stat export the HZ value directly.)

Yeah, it would be a lot simpler. Try telling that to Linus. :-(

> I'd still prefer to export only 32 bit of user, nice, and system. This
> way they overflow in a clearly defined way - the 32 bits we export are
> exact, only the higher bits are missing.

The higher bits are absolutely required.

There are ways to push the work of doing a 64-bit counter out into the
proc filesystem and a timer that goes off every 31 bits worth of time.
I've posted an explanation before; you may search for it if you like.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:22    [W:0.064 / U:3.516 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site