Hi, Wouldn't the attached diff below also help when load is removed, Vincent? Isn't there a theoretical chance that x_sum ends up at zero while x_load ends up as a positive value (without this patch)? Can post as a separate patch if it works for Sachin. diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index bfaa6e1f6067..def48bc2e90b 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -3688,15 +3688,15 @@ update_cfs_rq_load_avg(u64 now, struct cfs_rq *cfs_rq) r = removed_load; sub_positive(&sa->load_avg, r); - sub_positive(&sa->load_sum, r * divider); + sa->load_sum = sa->load_avg * divider; r = removed_util; sub_positive(&sa->util_avg, r); - sub_positive(&sa->util_sum, r * divider); + sa->util_sum = sa->util_avg * divider; r = removed_runnable; sub_positive(&sa->runnable_avg, r); - sub_positive(&sa->runnable_sum, r * divider); + sa->runnable_sum = sa->runnable_avg * divider; /* * removed_runnable is the unweighted version of removed_load so we