The comment and the code around 2nd update_min_vruntime() are not in agreement. From commit b60205c7c558 ("sched/fair: Fix min_vruntime tracking"), I think that we want to update min_vruntime when a task is sleeping/migrating. So, the check is inverted there.
Fixes: b60205c7c558 ("sched/fair: Fix min_vruntime tracking") Signed-off-by: Song Muchun <smuc...@gmail.com> --- 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 585d5726338b..ee271bb661cc 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -4003,7 +4003,7 @@ dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags) * put back on, and if we advance min_vruntime, we'll be placed back * further than we started -- ie. we'll be penalized. */ - if ((flags & (DEQUEUE_SAVE | DEQUEUE_MOVE)) == DEQUEUE_SAVE) + if ((flags & (DEQUEUE_SAVE | DEQUEUE_MOVE)) != DEQUEUE_SAVE) update_min_vruntime(cfs_rq); } -- 2.17.1