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.)
>
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.
Tim
-
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/
This archive was generated by hypermail 2b29 : Sat Feb 23 2002 - 21:00:23 EST