Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull scheduler fix from Ingo Molnar:
"This is a revert to fix an interactivity problem.

The proper fixes for the problems that the reverted commit exposed are
now in sched/core (consisting of 3 patches), but were too risky for
v4.6 and will arrive in the v4.7 merge window"

* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
Revert "sched/fair: Fix fairness issue on migration"

+7 -15
+7 -15
kernel/sched/fair.c
··· 3188 3188 static void 3189 3189 enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags) 3190 3190 { 3191 - bool renorm = !(flags & ENQUEUE_WAKEUP) || (flags & ENQUEUE_WAKING); 3192 - bool curr = cfs_rq->curr == se; 3193 - 3194 3191 /* 3195 - * If we're the current task, we must renormalise before calling 3196 - * update_curr(). 3192 + * Update the normalized vruntime before updating min_vruntime 3193 + * through calling update_curr(). 3197 3194 */ 3198 - if (renorm && curr) 3195 + if (!(flags & ENQUEUE_WAKEUP) || (flags & ENQUEUE_WAKING)) 3199 3196 se->vruntime += cfs_rq->min_vruntime; 3200 3197 3198 + /* 3199 + * Update run-time statistics of the 'current'. 3200 + */ 3201 3201 update_curr(cfs_rq); 3202 - 3203 - /* 3204 - * Otherwise, renormalise after, such that we're placed at the current 3205 - * moment in time, instead of some random moment in the past. 3206 - */ 3207 - if (renorm && !curr) 3208 - se->vruntime += cfs_rq->min_vruntime; 3209 - 3210 3202 enqueue_entity_load_avg(cfs_rq, se); 3211 3203 account_entity_enqueue(cfs_rq, se); 3212 3204 update_cfs_shares(cfs_rq); ··· 3214 3222 update_stats_enqueue(cfs_rq, se); 3215 3223 check_spread(cfs_rq, se); 3216 3224 } 3217 - if (!curr) 3225 + if (se != cfs_rq->curr) 3218 3226 __enqueue_entity(cfs_rq, se); 3219 3227 se->on_rq = 1; 3220 3228