Hello, Peter: 2017-07-05 19:59 GMT+08:00 Peter Zijlstra <peterz@xxxxxxxxxxxxx>: > On Wed, Jul 05, 2017 at 04:46:30PM +0800, Ganesh Mahendran wrote: >> Function __compute_runnable_contrib() is to calculate: >> \Sum 1024*y^n {for (1..n_period)} >> But LOAD_AVG_MAX returns sum of 1024*y^n (0..n_period). >> So we need to subtract 1024*y^0. >> >> Cc: stable@xxxxxxxxxxxxxxx >> Signed-off-by: Ganesh Mahendran <opensource.ganesh@xxxxxxxxx> >> --- >> kernel/sched/fair.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c >> index 90e26b1..777ad49 100644 >> --- a/kernel/sched/fair.c >> +++ b/kernel/sched/fair.c >> @@ -2508,7 +2508,7 @@ static u32 __compute_runnable_contrib(u64 n) >> if (likely(n <= LOAD_AVG_PERIOD)) >> return runnable_avg_yN_sum[n]; >> else if (unlikely(n >= LOAD_AVG_MAX_N)) >> - return LOAD_AVG_MAX; >> + return LOAD_AVG_MAX - 1024; >> >> /* Compute \Sum k^n combining precomputed values for k^i, \Sum k^j */ >> do { > > > This code no longer exists... Yes, you are right. The latest kernel has fix this. Do we need to fix this in LTS 4.1, 4.4? Thanks.