Re: Workaround for wrapping loadaverage
From: Herbert Poetzl
Date: Wed Nov 10 2004 - 18:33:48 EST
On Wed, Nov 10, 2004 at 06:07:25PM +1100, Nick Piggin wrote:
> Herbert Poetzl wrote:
> >On Tue, Nov 09, 2004 at 01:43:35AM +0100, Patrick Mau wrote:
> >>We re-calculate the load every 5 seconds. I think it would be OK to
> >>use more bits/registers, it's not that frequently called.
> >hmm ...
> > do_timer() -> update_times() -> calc_load()
> >so not exactly every 5 seconds ...
> calc_load() -> messing with LOAD_FREQ -> once every 5 seconds, no?
usually yes ...
> I think doing 32/32 bit calculations would be fine.
> >but I agree that a higher resolution would be a good
> >idea ... also doing the calculation when the number
> >of running/uninterruptible processes has changed would
> >be a good idea ...
> Apart from the problem Con pointed out, you'd need a fancier algorithm
> to calculate load because your interval isn't going to be fixed, so you
> need to factor that in when calculating the area under the 'curve'
yes, something like this:
update_loadavg(uint32_t load, int wsize, int delta, int n)
unsigned long long calc;
if (delta >= wsize)
return (n << FSHIFT);
calc = (delta * n) << FSHIFT;
calc += (wsize - delta) * load;
> I think the good 'ol 5 seconds should be alright.
probably sufficient, yes ...
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/