On 3/23/21 4:21 PM, Song Bao Hua (Barry Song) wrote: >> >> On 3/18/21 9:16 PM, Barry Song wrote: >>> From: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx> >>> >>> There are x86 CPU architectures (e.g. Jacobsville) where L2 cahce >>> is shared among a cluster of cores instead of being exclusive >>> to one single core. >>> >>> To prevent oversubscription of L2 cache, load should be >>> balanced between such L2 clusters, especially for tasks with >>> no shared data. >>> >>> Also with cluster scheduling policy where tasks are woken up >>> in the same L2 cluster, we will benefit from keeping tasks >>> related to each other and likely sharing data in the same L2 >>> cluster. >>> >>> Add CPU masks of CPUs sharing the L2 cache so we can build such >>> L2 cluster scheduler domain. >>> >>> Signed-off-by: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx> >>> Signed-off-by: Barry Song <song.bao.hua@xxxxxxxxxxxxx> >> >> >> Barry, >> >> Can you also add this chunk to the patch. >> Thanks. > > Sure, Tim, Thanks. I'll put that into patch 4/4 in v6. > Barry, This chunk will also need to be added to return cluster id for x86. Please add it in your next rev. Thanks. Tim --- diff --git a/arch/x86/include/asm/topology.h b/arch/x86/include/asm/topology.h index 800fa48c9fcd..2548d824f103 100644 --- a/arch/x86/include/asm/topology.h +++ b/arch/x86/include/asm/topology.h @@ -109,6 +109,7 @@ extern const struct cpumask *cpu_clustergroup_mask(int cpu); #define topology_physical_package_id(cpu) (cpu_data(cpu).phys_proc_id) #define topology_logical_die_id(cpu) (cpu_data(cpu).logical_die_id) #define topology_die_id(cpu) (cpu_data(cpu).cpu_die_id) +#define topology_cluster_id(cpu) (per_cpu(cpu_l2c_id, cpu)) #define topology_core_id(cpu) (cpu_data(cpu).cpu_core_id) extern unsigned int __max_die_per_package;