aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/sched/fair.c4
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)