[PATCH] sched_ext: idle: Fix return code of scx_select_cpu_dfl()

Andrea Righi posted 1 patch 8 months, 3 weeks ago
kernel/sched/ext_idle.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] sched_ext: idle: Fix return code of scx_select_cpu_dfl()
Posted by Andrea Righi 8 months, 3 weeks ago
Return -EBUSY when using %SCX_PICK_IDLE_CORE with scx_select_cpu_dfl()
if a fully idle SMT core cannot be found, instead of falling back to
@prev_cpu, which is not a fully idle SMT core in this case.

Fixes: c414c2171cd9e ("sched_ext: idle: Honor idle flags in the built-in idle selection policy")
Signed-off-by: Andrea Righi <arighi@nvidia.com>
---
 kernel/sched/ext_idle.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/ext_idle.c b/kernel/sched/ext_idle.c
index 52c36a70a3d04..45061b5843806 100644
--- a/kernel/sched/ext_idle.c
+++ b/kernel/sched/ext_idle.c
@@ -544,7 +544,7 @@ s32 scx_select_cpu_dfl(struct task_struct *p, s32 prev_cpu, u64 wake_flags, u64
 		 * core.
 		 */
 		if (flags & SCX_PICK_IDLE_CORE) {
-			cpu = prev_cpu;
+			cpu = -EBUSY;
 			goto out_unlock;
 		}
 	}
-- 
2.49.0
Re: [PATCH] sched_ext: idle: Fix return code of scx_select_cpu_dfl()
Posted by Tejun Heo 8 months, 3 weeks ago
On Wed, Mar 26, 2025 at 08:18:49PM +0100, Andrea Righi wrote:
> Return -EBUSY when using %SCX_PICK_IDLE_CORE with scx_select_cpu_dfl()
> if a fully idle SMT core cannot be found, instead of falling back to
> @prev_cpu, which is not a fully idle SMT core in this case.
> 
> Fixes: c414c2171cd9e ("sched_ext: idle: Honor idle flags in the built-in idle selection policy")
> Signed-off-by: Andrea Righi <arighi@nvidia.com>

Applied to sched_ext/for-6.15-fixes.

Thanks.

-- 
tejun