Re: [RFC V2 2/2] sched: idle: IRQ based next prediction for idle period

From: Nicolas Pitre
Date: Wed Jan 20 2016 - 14:57:16 EST


On Wed, 20 Jan 2016, Peter Zijlstra wrote:

> On Wed, Jan 20, 2016 at 05:00:33PM +0100, Daniel Lezcano wrote:
> > +static inline u32 stats_mean(struct stats *s)
> > +{
> > + /*
> > + * gcc is smart enough to convert to a bits shift when the
> > + * divisor is constant and multiple of 2^x.
> > + *
> > + * The number of values could have not reached STATS_NR_VALUES
> > + * yet, but we can consider it acceptable as the situation is
> > + * only at the beginning of the burst of irqs.
> > + */
> > + return s->sum / STATS_NR_VALUES;
> > +}
>
> Note that ->sum is u64, so you're very prone to truncation.

It won't. It is the sum of u32 values, so the mean of those values
can't exceed 32 bits.


Nicolas