Besides being a waste of time to try to move tasks to where they already are, this avoids triggering the WARN_ON_ONCE(is_migration_disabled(p)) in set_task_cpu(). Signed-off-by: Scott Wood <swood@xxxxxxxxxx> --- Patch is against tip/master. Assertion was seen by running rteval on the RT tree. kernel/sched/fair.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index e7e21ac479a2..f443626164d4 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7574,7 +7574,8 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env) /* Prevent to re-select dst_cpu via env's CPUs: */ for_each_cpu_and(cpu, env->dst_grpmask, env->cpus) { - if (cpumask_test_cpu(cpu, p->cpus_ptr)) { + if (cpu != env->src_cpu && + cpumask_test_cpu(cpu, p->cpus_ptr)) { env->flags |= LBF_DST_PINNED; env->new_dst_cpu = cpu; break; -- 2.27.0