Messages in this thread | | | From | "Albert D. Cahalan" <> | Subject | Re: Unknown HZ value! (1908) Assume 1024. | Date | Mon, 1 Apr 2002 03:28:30 -0500 (EST) |
| |
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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |