[PATCH 1/2] sched/deadline: use online cpus for validating runtime

From: Shrikanth Hegde
Date: Thu Mar 06 2025 - 00:31:30 EST


ftrace selftest reported failure since writing -1 to sched_rt_runtime_us
return -EBUSY. This happens when the possible CPUs is different than
the active CPUS.

Active CPUs are part of one root domain, while remaining CPUs are part
of def_root_domain. Since active cpumask is being used, this results in
cpus=0 when a non active CPUs is used in the loop.

Fix it by looping over the online CPUs instead for validation the
bandwidth calculations.

Signed-off-by: Shrikanth Hegde <sshegde@xxxxxxxxxxxxx>
---
kernel/sched/deadline.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index 2d0f571f95e9..7ea9c040c72f 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -3187,7 +3187,7 @@ int sched_dl_global_validate(void)
* value smaller than the currently allocated bandwidth in
* any of the root_domains.
*/
- for_each_possible_cpu(cpu) {
+ for_each_online_cpu(cpu) {
rcu_read_lock_sched();

if (dl_bw_visited(cpu, gen))
--
2.39.3