Patch "x86/topology: Use x86_sched_itmt_flags for PKG domain unconditionally" has been added to the 6.12-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    x86/topology: Use x86_sched_itmt_flags for PKG domain unconditionally

to the 6.12-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     x86-topology-use-x86_sched_itmt_flags-for-pkg-domain.patch
and it can be found in the queue-6.12 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit e06117de4c0197d064453bf10eef7d9cf44a002f
Author: K Prateek Nayak <kprateek.nayak@xxxxxxx>
Date:   Mon Dec 23 04:34:04 2024 +0000

    x86/topology: Use x86_sched_itmt_flags for PKG domain unconditionally
    
    [ Upstream commit e1bc02646527fc1ed74f00eb599b2b74d49671c7 ]
    
    x86_sched_itmt_flags() returns SD_ASYM_PACKING if ITMT support is
    enabled by the system. Without ITMT support being enabled, it returns 0
    similar to current x86_die_flags() on non-Hybrid systems
    (!X86_HYBRID_CPU and !X86_FEATURE_AMD_HETEROGENEOUS_CORES)
    
    On Intel systems that enable ITMT support, either the MC domain
    coincides with the PKG domain, or in case of multiple MC groups
    within a PKG domain, either Sub-NUMA Cluster (SNC) is enabled or the
    processor features Hybrid core layout (X86_HYBRID_CPU) which leads to
    three distinct possibilities:
    
    o If PKG and MC domains coincide, PKG domain is degenerated by
      sd_parent_degenerate() when building sched domain topology.
    
    o If SNC is enabled, PKG domain is never added since
      "x86_has_numa_in_package" is set and the topology will instead contain
      NODE and NUMA domains.
    
    o On X86_HYBRID_CPU which contains multiple MC groups within the PKG,
      the PKG domain requires x86_sched_itmt_flags().
    
    Thus, on Intel systems that contains multiple MC groups within the PKG
    and enables ITMT support, the PKG domain requires
    x86_sched_itmt_flags(). In all other cases PKG domain is either never
    added or is degenerated. Thus, returning x86_sched_itmt_flags()
    unconditionally at PKG domain on Intel systems should not lead to any
    functional changes.
    
    On AMD systems with multiple LLCs (MC groups) within a PKG domain,
    enabling ITMT support requires setting SD_ASYM_PACKING to the PKG domain
    since the core rankings are assigned PKG-wide.
    
    Core rankings on AMD processors is currently set by the amd-pstate
    driver when Preferred Core feature is supported. A subset of systems that
    support Preferred Core feature can be detected using
    X86_FEATURE_AMD_HETEROGENEOUS_CORES however, this does not cover all the
    systems that support Preferred Core ranking.
    
    Detecting Preferred Core support on AMD systems requires inspecting CPPC
    Highest Perf on all present CPUs and checking if it differs on at least
    one CPU. Previous suggestion to use a synthetic feature to detect
    Preferred Core support [1] was found to be non-trivial to implement
    since BSP alone cannot detect if Preferred Core is supported and by the
    time AP comes up, alternatives are patched and setting a X86_FEATURE_*
    then is not possible.
    
    Since x86 processors enabling ITMT support that consists multiple
    non-NUMA MC groups within a PKG requires SD_ASYM_PACKING flag set at the
    PKG domain, return x86_sched_itmt_flags unconditionally for the PKG
    domain.
    
    Since x86_die_flags() would have just returned x86_sched_itmt_flags()
    after the change, remove the unnecessary wrapper and pass
    x86_sched_itmt_flags() directly as the flags function.
    
    Fixes: f3a052391822 ("cpufreq: amd-pstate: Enable amd-pstate preferred core support")
    Signed-off-by: K Prateek Nayak <kprateek.nayak@xxxxxxx>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
    Reviewed-by: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20241223043407.1611-6-kprateek.nayak@xxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index b5a8f0891135b..f1fac08fdef28 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -495,15 +495,6 @@ static int x86_cluster_flags(void)
 }
 #endif
 
-static int x86_die_flags(void)
-{
-	if (cpu_feature_enabled(X86_FEATURE_HYBRID_CPU) ||
-	    cpu_feature_enabled(X86_FEATURE_AMD_HETEROGENEOUS_CORES))
-		return x86_sched_itmt_flags();
-
-	return 0;
-}
-
 /*
  * Set if a package/die has multiple NUMA nodes inside.
  * AMD Magny-Cours, Intel Cluster-on-Die, and Intel
@@ -539,7 +530,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, x86_die_flags, SD_INIT_NAME(PKG)
+			cpu_cpu_mask, x86_sched_itmt_flags, SD_INIT_NAME(PKG)
 		};
 	}
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux