Re: [PATCH v2 1/3] topology: Introduce cpu_smt_mask for CONFIG_SCHED_SMT=n

From: Phil Auld

Date: Tue May 12 2026 - 13:00:27 EST


On Tue, May 12, 2026 at 08:51:23PM +0530 Shrikanth Hegde wrote:
> Define cpu_smt_mask in case of CONFIG_SCHED_SMT=n as cpumask_of that
> CPU. With that config, it is expected that kernel treats each CPU
> as individual core. Using cpumask_of(cpu) reflects that.
>
> This would help to get rid of the ifdeffery that is spread across
> the codebase since cpu_smt_mask is defined only in case of
> CONFIG_SCHED_SMT=y.
>
> Note: There is no arch today which defines cpu_smt_mask unconditionally.
> So likely defining the cpu_smt_mask shouldn't lead redefintion errors.
>
> Signed-off-by: Shrikanth Hegde <sshegde@xxxxxxxxxxxxx>


I like this whole cleanup, fwiw.

Reviewed-by: Phil Auld <pauld@xxxxxxxxxx>


Cheers,
Phil

> ---
> include/linux/topology.h | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/include/linux/topology.h b/include/linux/topology.h
> index 6575af39fd10..709a2dcf4c73 100644
> --- a/include/linux/topology.h
> +++ b/include/linux/topology.h
> @@ -230,11 +230,24 @@ static inline int cpu_to_mem(int cpu)
> #define topology_drawer_cpumask(cpu) cpumask_of(cpu)
> #endif
>
> -#if defined(CONFIG_SCHED_SMT) && !defined(cpu_smt_mask)
> +/*
> + * Defining cpu_smt_mask as cpumask_of that CPU helps to get
> + * rid of lot of ifdeffery all around the codebase in case of
> + * CONFIG_SCHED_SMT=n. It just means there are no other siblings, which
> + * is what is expected.
> + */
> +#if defined(CONFIG_SCHED_SMT)
> +# if !defined(cpu_smt_mask)
> static inline const struct cpumask *cpu_smt_mask(int cpu)
> {
> return topology_sibling_cpumask(cpu);
> }
> +# endif
> +#else /* !CONFIG_SCHED_SMT */
> +static inline const struct cpumask *cpu_smt_mask(int cpu)
> +{
> + return cpumask_of(cpu);
> +}
> #endif
>
> #ifndef topology_is_primary_thread
> --
> 2.47.3
>
>

--