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. Tim diff --git a/arch/x86/include/asm/topology.h b/arch/x86/include/asm/topology.h index 2a11ccc14fb1..800fa48c9fcd 100644 --- a/arch/x86/include/asm/topology.h +++ b/arch/x86/include/asm/topology.h @@ -115,6 +115,7 @@ extern unsigned int __max_die_per_package; #ifdef CONFIG_SMP #define topology_die_cpumask(cpu) (per_cpu(cpu_die_map, cpu)) +#define topology_cluster_cpumask(cpu) (cpu_clustergroup_mask(cpu)) #define topology_core_cpumask(cpu) (per_cpu(cpu_core_map, cpu)) #define topology_sibling_cpumask(cpu) (per_cpu(cpu_sibling_map, cpu))