diff options
-rw-r--r-- | kernel/sched/fair.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 2d1ac6e2386d..bdf18836f74e 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c | |||
@@ -5344,11 +5344,13 @@ static void task_move_group_fair(struct task_struct *p, int on_rq) | |||
5344 | * | 5344 | * |
5345 | * - Moving a forked child which is waiting for being woken up by | 5345 | * - Moving a forked child which is waiting for being woken up by |
5346 | * wake_up_new_task(). | 5346 | * wake_up_new_task(). |
5347 | * - Moving a task which has been woken up by try_to_wake_up() and | ||
5348 | * waiting for actually being woken up by sched_ttwu_pending(). | ||
5347 | * | 5349 | * |
5348 | * To prevent boost or penalty in the new cfs_rq caused by delta | 5350 | * To prevent boost or penalty in the new cfs_rq caused by delta |
5349 | * min_vruntime between the two cfs_rqs, we skip vruntime adjustment. | 5351 | * min_vruntime between the two cfs_rqs, we skip vruntime adjustment. |
5350 | */ | 5352 | */ |
5351 | if (!on_rq && !p->se.sum_exec_runtime) | 5353 | if (!on_rq && (!p->se.sum_exec_runtime || p->state == TASK_WAKING)) |
5352 | on_rq = 1; | 5354 | on_rq = 1; |
5353 | 5355 | ||
5354 | if (!on_rq) | 5356 | if (!on_rq) |