Re: [PATCH v3 4/4] sched: Unify SMT active check via sched_smt_active()

From: Valentin Schneider

Date: Fri May 15 2026 - 10:28:08 EST


On 13/05/26 19:09, Shrikanth Hegde wrote:
> There is a use of sched_smt_active() and explicit use of sched_smt_present.
> Remove the explicit usage for better code maintenance and readability.
>
> Note that this differs slightly for update_idle_core. It used to call
> static_branch_unlikely earlier and now it will call static_branch_likely.
>

I dug a little but didn't get any farther than Prateek [1] wrt why that one
usage was "special".

[1]: https://lore.kernel.org/lkml/35f10be6-1e2f-4a6f-ae9f-a09754221011@xxxxxxx/

Reviewed-by: Valentin Schneider <vschneid@xxxxxxxxxx>

> Signed-off-by: Shrikanth Hegde <sshegde@xxxxxxxxxxxxx>
> ---
> kernel/sched/core_sched.c | 2 +-
> kernel/sched/fair.c | 2 +-
> kernel/sched/sched.h | 2 +-
> 3 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/kernel/sched/core_sched.c b/kernel/sched/core_sched.c
> index 73b6b2426911..43e0bde3038e 100644
> --- a/kernel/sched/core_sched.c
> +++ b/kernel/sched/core_sched.c
> @@ -136,7 +136,7 @@ int sched_core_share_pid(unsigned int cmd, pid_t pid, enum pid_type type,
> struct pid *grp;
> int err = 0;
>
> - if (!static_branch_likely(&sched_smt_present))
> + if (!sched_smt_active())
> return -ENODEV;
>
> BUILD_BUG_ON(PR_SCHED_CORE_SCOPE_THREAD != PIDTYPE_PID);
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index 964014a74cf9..29fbb5287cfc 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -2276,7 +2276,7 @@ numa_type numa_classify(unsigned int imbalance_pct,
> static inline bool test_idle_cores(int cpu);
> static inline int numa_idle_core(int idle_core, int cpu)
> {
> - if (!static_branch_likely(&sched_smt_present) ||
> + if (!sched_smt_active() ||
> idle_core >= 0 || !test_idle_cores(cpu))
> return idle_core;
>
> diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
> index e476623a0c2a..ffe77b2b6296 100644
> --- a/kernel/sched/sched.h
> +++ b/kernel/sched/sched.h
> @@ -1671,7 +1671,7 @@ extern void __update_idle_core(struct rq *rq);
>
> static inline void update_idle_core(struct rq *rq)
> {
> - if (static_branch_unlikely(&sched_smt_present))
> + if (sched_smt_active())
> __update_idle_core(rq);
> }
>
> --
> 2.47.3