process-util: Add support SCHED_EXT scheduling policy

Allow CPUSchedulingPolicy to be set to "ext". SCHED_EXT is a new
scheduling policy in Linux v6.12 that allows processes to be scheduled
using custom BPF schedulers instead of the default in-kernel ones.

Selectively setting the SCHED_EXT policy is useful for systems running
in "partial mode" where not all processes are run using a custom
scheduler.

Fallback to SCHED_OTHER and print an error message for systems where
SCHED_EXT isn't available.
This commit is contained in:
Matt Fleming
2025-12-20 18:31:55 +01:00
committed by Mike Yuan
parent 84dcbc3fd2
commit 4dcbfbb1ad
9 changed files with 69 additions and 10 deletions
+4 -1
View File
@@ -1539,9 +1539,12 @@ int config_parse_exec_cpu_sched_policy(
return 0;
}
if (!sched_policy_supported(x))
log_syntax(unit, LOG_WARNING, filename, line, x, "Unsupported CPU scheduling policy: %s", rvalue);
c->cpu_sched_policy = x;
/* Moving to or from real-time policy? We need to adjust the priority */
c->cpu_sched_priority = CLAMP(c->cpu_sched_priority, sched_get_priority_min(x), sched_get_priority_max(x));
c->cpu_sched_priority = CLAMP(c->cpu_sched_priority, sched_get_priority_min_safe(x), sched_get_priority_max_safe(x));
c->cpu_sched_set = true;
return 0;