kernel/sched/ext.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-)
select_rq_task() already checked that 'p->nr_cpus_allowed > 1',
'p->nr_cpus_allowed == 1' checker in scx_select_cpu_dfl() is redundant.
Signed-off-by: Zhang Qiao <zhangqiao22@huawei.com>
---
kernel/sched/ext.c | 11 +----------
1 file changed, 1 insertion(+), 10 deletions(-)
diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c
index eabf8705e1e6..e91d5e9caa2f 100644
--- a/kernel/sched/ext.c
+++ b/kernel/sched/ext.c
@@ -3051,22 +3051,13 @@ static s32 scx_select_cpu_dfl(struct task_struct *p, s32 prev_cpu,
* there is an idle core elsewhere on the system.
*/
cpu = smp_processor_id();
- if ((wake_flags & SCX_WAKE_SYNC) && p->nr_cpus_allowed > 1 &&
+ if ((wake_flags & SCX_WAKE_SYNC) &&
!cpumask_empty(idle_masks.cpu) && !(current->flags & PF_EXITING) &&
cpu_rq(cpu)->scx.local_dsq.nr == 0) {
if (cpumask_test_cpu(cpu, p->cpus_ptr))
goto cpu_found;
}
- if (p->nr_cpus_allowed == 1) {
- if (test_and_clear_cpu_idle(prev_cpu)) {
- cpu = prev_cpu;
- goto cpu_found;
- } else {
- return prev_cpu;
- }
- }
-
/*
* If CPU has SMT, any wholly idle CPU is likely a better pick than
* partially idle @prev_cpu.
--
2.33.0
On Thu, Sep 26, 2024 at 06:39:49PM +0800, Zhang Qiao wrote: > select_rq_task() already checked that 'p->nr_cpus_allowed > 1', > 'p->nr_cpus_allowed == 1' checker in scx_select_cpu_dfl() is redundant. > > Signed-off-by: Zhang Qiao <zhangqiao22@huawei.com> Applied to sched_ext/for-6.12-fixes. I think we probably need a flag to tell the BPF scheduler whether select_cpu has been called or not. Right now, most schedulers assume that select_cpu() as called before enqueue() on wakeup path but that's not true for CPU-affine tasks. Thanks. -- tejun
© 2016 - 2026 Red Hat, Inc.