Messages in this thread | | | Date | Fri, 8 Jul 2022 17:26:14 -0400 | From | Steven Rostedt <> | Subject | Re: [PATCH v4 1/2] sched/rt: fix bad task migration for rt tasks |
| |
On Sat, 9 Jul 2022 05:17:54 +0800 Schspa Shi <schspa@gmail.com> wrote:
> +++ b/kernel/sched/rt.c > @@ -1998,11 +1998,14 @@ static struct rq *find_lock_lowest_rq(struct task_struct *task, struct rq *rq) > * the mean time, task could have > * migrated already or had its affinity changed. > * Also make sure that it wasn't scheduled on its rq. > + * It is possible the task has running for a while,
I don't understand the "running for a while" part. That doesn't make sense.
The only way this can happen is that it was scheduled, set "migrate_disabled" and then got preempted where it's no longer on the run queue.
-- Steve
> + * And we check task migration disable flag here. > */ > if (unlikely(task_rq(task) != rq || > !cpumask_test_cpu(lowest_rq->cpu, &task->cpus_mask) || > task_running(rq, task) || > !rt_task(task) || > + is_migration_disabled(task) || > !task_on_rq_queued(task))) { > > double_unlock_balance(rq, lowest_rq);
| |