This repository has been archived by the owner on Jun 18, 2024. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
sched_exec() calls select_task_rq() and then do a rq migration if the returned cpu is different from current. This calls ops.select_cpu() outside the normal enqueue path confusing the direct dispatch mechanism - e.g. rq->scx.ddsp_dsq_id can be asserted when it shouldn't be. I tried to make ops.select_cpu() work in this path but the mechanism doesn't make whole lot of sense for scx and it makes the semantics around ops.select_cpu() unnecessarily complicated for rare corner cases. If we want this behavior, I think the right thing to do is adding a separate method which can preempt self to trigger the normal scheduling path for the task.
- Loading branch information