Re: [PATCH] x86/sched: Restore the SD_ASYM_PACKING flag in the DIE domain

From: Ricardo Neri
Date: Mon Sep 11 2023 - 22:35:28 EST


On Mon, Aug 14, 2023 at 08:57:47PM -0700, Ricardo Neri wrote:
> Commit 8f2d6c41e5a6 ("x86/sched: Rewrite topology setup") dropped the
> SD_ASYM_PACKING flag in the DIE domain added in commit 044f0e27dec6
> ("x86/sched: Add the SD_ASYM_PACKING flag to the die domain of hybrid
> processors"). Restore it on hybrid processors.
>
> The die-level domain does not depend on any build configuration and now
> x86_sched_itmt_flags() is always needed. Remove the build dependency on
> CONFIG_SCHED_[SMT|CLUSTER|MC].
>
> Cc: Ben Segall <bsegall@xxxxxxxxxx>
> Cc: Caleb Callaway <caleb.callaway@xxxxxxxxx>
> Cc: Chen Yu <yu.c.chen@xxxxxxxxx>
> Cc: Daniel Bristot de Oliveira <bristot@xxxxxxxxxx>
> Cc: Dietmar Eggemann <dietmar.eggemann@xxxxxxx>
> Cc: Len Brown <len.brown@xxxxxxxxx>
> Cc: Mel Gorman <mgorman@xxxxxxx>
> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
> Cc: Tim C. Chen <tim.c.chen@xxxxxxxxx>
> Cc: Valentin Schneider <vschneid@xxxxxxxxxx>
> Cc: Vincent Guittot <vincent.guittot@xxxxxxxxxx>
> Cc: x86@xxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Fixes: 8f2d6c41e5a6 ("x86/sched: Rewrite topology setup")
> Reviewed-by: Chen Yu <yu.c.chen@xxxxxxxxx>
> Tested-by: Caleb Callaway <caleb.callaway@xxxxxxxxx>
> Signed-off-by: Ricardo Neri <ricardo.neri-calderon@xxxxxxxxxxxxxxx>
> ---
> arch/x86/kernel/smpboot.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
> index d7667a29acf3..944008c72754 100644
> --- a/arch/x86/kernel/smpboot.c
> +++ b/arch/x86/kernel/smpboot.c
> @@ -579,7 +579,6 @@ static bool match_llc(struct cpuinfo_x86 *c, struct cpuinfo_x86 *o)
> }
>
>
> -#if defined(CONFIG_SCHED_SMT) || defined(CONFIG_SCHED_CLUSTER) || defined(CONFIG_SCHED_MC)
> static inline int x86_sched_itmt_flags(void)
> {
> return sysctl_sched_itmt_enabled ? SD_ASYM_PACKING : 0;
> @@ -603,7 +602,12 @@ static int x86_cluster_flags(void)
> return cpu_cluster_flags() | x86_sched_itmt_flags();
> }
> #endif
> -#endif
> +
> +static int x86_die_flags(void)
> +{
> + return cpu_feature_enabled(X86_FEATURE_HYBRID_CPU) ?
> + x86_sched_itmt_flags() : 0;
> +}
>
> /*
> * Set if a package/die has multiple NUMA nodes inside.
> @@ -640,7 +644,7 @@ static void __init build_sched_topology(void)
> */
> if (!x86_has_numa_in_package) {
> x86_topology[i++] = (struct sched_domain_topology_level){
> - cpu_cpu_mask, SD_INIT_NAME(DIE)
> + cpu_cpu_mask, x86_die_flags, SD_INIT_NAME(DIE)
> };
> }
>

Hi, just checking if there are any comments on this patch?