| From foo@baz Sat Nov 10 11:24:34 PST 2018 |
| From: Song Muchun <smuchun@gmail.com> |
| Date: Sun, 14 Oct 2018 19:26:12 +0800 |
| Subject: sched/fair: Fix the min_vruntime update logic in dequeue_entity() |
| |
| From: Song Muchun <smuchun@gmail.com> |
| |
| [ Upstream commit 9845c49cc9bbb317a0bc9e9cf78d8e09d54c9af0 ] |
| |
| The comment and the code around the update_min_vruntime() call in |
| dequeue_entity() 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 - fix it. |
| |
| Signed-off-by: Song Muchun <smuchun@gmail.com> |
| Cc: Linus Torvalds <torvalds@linux-foundation.org> |
| Cc: Mike Galbraith <efault@gmx.de> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Thomas Gleixner <tglx@linutronix.de> |
| Fixes: b60205c7c558 ("sched/fair: Fix min_vruntime tracking") |
| Link: http://lkml.kernel.org/r/20181014112612.2614-1-smuchun@gmail.com |
| Signed-off-by: Ingo Molnar <mingo@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| kernel/sched/fair.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/kernel/sched/fair.c |
| +++ b/kernel/sched/fair.c |
| @@ -3502,7 +3502,7 @@ dequeue_entity(struct cfs_rq *cfs_rq, st |
| * 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); |
| } |
| |