Re: [RFC PATCH] sched: Add scx_cpuperf_target in sched_cpu_util()

Peter Zijlstra
2026-03-18T12:47:32Z

On Wed, Mar 18, 2026 at 08:17:55PM +0800, Xuewen Yan wrote:
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index bf948db905ed..20adb6fede2a 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -8198,7 +8198,12 @@ unsigned long effective_cpu_util(int cpu, unsigned long util_cfs,
>
> unsigned long sched_cpu_util(int cpu)
> {
> - return effective_cpu_util(cpu, cpu_util_cfs(cpu), NULL, NULL);
> + unsigned long util = scx_cpuperf_target(cpu);
> +
> + if (!scx_switched_all())
> + util += cpu_util_cfs(cpu);
> +
> + return effective_cpu_util(cpu, util, NULL, NULL);
> }

This puts the common case of no ext muck into the slow path of that
static_branch.

This wants to be something like:

unsigned long sched_cpu_util(int cpu)
{
unsigned long util = cpu_util_cfs(cpu);

if (scx_enabled()) {
unsigned long scx_util = scx_cpuperf_target(cpu);

if (!scx_switched_all())
scx_util += util;

util = scx_util;
}

return effective_cpu_util(cpu, util, NULL, NULL);
}