[PATCH 2/3] sched_ext: Drop the stale keep_prev fixup in dispatch_pick()
Tejun Heo <[email protected]>
| Newsgroups | dev.linux.lists.sched-ext,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
The fixup demoting a keep verdict when @prev is not on ext_sched_class guarded against the rq-level SCX_RQ_BAL_KEEP flag going stale back when balancing and picking were separate operations. The verdict now travels in the return value, created and consumed in one invocation against the @prev it evaluated, and every keep decision tests SCX_TASK_QUEUED under the rq lock, which implies ext_sched_class as a class switch dequeues first. Drop the fixup along with dispatch_core_pick()'s copy. Signed-off-by: Tejun Heo <[email protected]> --- kernel/sched/ext/ext.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/kernel/sched/ext/ext.c b/kernel/sched/ext/ext.c index 4867517b71a4..19db98f0e727 100644 --- a/kernel/sched/ext/ext.c +++ b/kernel/sched/ext/ext.c @@ -3355,11 +3355,6 @@ static enum scx_dsp_verdict dispatch_pick(struct rq *rq, struct rq_flags *rf, kick_sync_wait_bal_cb); } - if (unlikely(verdict == SCX_DSP_PREV && prev->sched_class != &ext_sched_class)) { - WARN_ON_ONCE(scx_enable_state() == SCX_ENABLED); - verdict = SCX_DSP_LOCAL; - } - return verdict; } @@ -3410,13 +3405,6 @@ static enum scx_dsp_verdict dispatch_core_pick(struct rq *rq, struct rq_flags *r if (rq->scx.lock_drop_seq != seq) return SCX_DSP_RETRY; - /* see dispatch_pick() */ - if (unlikely(verdict == SCX_DSP_PREV && - prev->sched_class != &ext_sched_class)) { - WARN_ON_ONCE(scx_enable_state() == SCX_ENABLED); - verdict = SCX_DSP_LOCAL; - } - return verdict; } #else /* CONFIG_SCHED_CORE */ -- 2.55.0