[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LFD.2.20.1601201455270.2140@knanqh.ubzr>
Date: Wed, 20 Jan 2016 14:57:07 -0500 (EST)
From: Nicolas Pitre <nicolas.pitre@...aro.org>
To: Peter Zijlstra <peterz@...radead.org>
cc: Daniel Lezcano <daniel.lezcano@...aro.org>, tglx@...utronix.de,
rafael@...nel.org, linux-pm@...r.kernel.org,
linux-kernel@...r.kernel.org, vincent.guittot@...aro.org
Subject: Re: [RFC V2 2/2] sched: idle: IRQ based next prediction for idle
period
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
Powered by blists - more mailing lists