lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 04 Oct 2021 15:54:50 -0700 From: Tim Chen <tim.c.chen@...ux.intel.com> To: Barry Song <21cnbao@...il.com> Cc: Peter Zijlstra <peterz@...radead.org>, Vincent Guittot <vincent.guittot@...aro.org>, Dietmar Eggemann <dietmar.eggemann@....com>, LKML <linux-kernel@...r.kernel.org>, Ingo Molnar <mingo@...hat.com>, Aubrey Li <aubrey.li@...ux.intel.com>, Borislav Petkov <bp@...en8.de>, Daniel Bristot de Oliveira <bristot@...hat.com>, Ben Segall <bsegall@...gle.com>, Catalin Marinas <catalin.marinas@....com>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Guodong Xu <guodong.xu@...aro.org>, "H. Peter Anvin" <hpa@...or.com>, Jonathan Cameron <jonathan.cameron@...wei.com>, Juri Lelli <juri.lelli@...hat.com>, "Cc: Len Brown" <lenb@...nel.org>, ACPI Devel Maling List <linux-acpi@...r.kernel.org>, LAK <linux-arm-kernel@...ts.infradead.org>, Linuxarm <linuxarm@...wei.com>, Mark Rutland <mark.rutland@....com>, Mel Gorman <mgorman@...e.de>, msys.mizuma@...il.com, "Zengtao (B)" <prime.zeng@...ilicon.com>, "Rafael J. Wysocki" <rjw@...ysocki.net>, Steven Rostedt <rostedt@...dmis.org>, Barry Song <song.bao.hua@...ilicon.com>, Sudeep Holla <sudeep.holla@....com>, Thomas Gleixner <tglx@...utronix.de>, "Rafael J. Wysocki" <rafael@...nel.org>, Valentin Schneider <valentin.schneider@....com>, Will Deacon <will@...nel.org>, x86 <x86@...nel.org>, yangyicong <yangyicong@...wei.com> Subject: Re: [PATCH RESEND 0/3] Represent cluster topology and enable load balance between clusters On Sat, 2021-10-02 at 20:09 +1300, Barry Song wrote: > > > Thanks, Tim, for your comments. > I am ok to make it default "Y" for x86 after having a better doc as > below: > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index bd27b1cdac34..940eb1fe0abb 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -1002,12 +1002,17 @@ config NR_CPUS > to the kernel image. > > config SCHED_CLUSTER > - bool "Cluster scheduler support" > - default n > + def_bool y > + prompt "Cluster scheduler support" > help > Cluster scheduler support improves the CPU scheduler's > decision > - making when dealing with machines that have clusters of CPUs > - sharing L2 cache. If unsure say N here. > + making when dealing with machines that have clusters of > CPUs. > + Cluster usually means a couple of CPUs which are placed > closely > + by sharing mid-level caches, last-level cache tags or > internal > + busses. For example, on x86 Jacobsville, each 4 CPUs share > one > + L2 cache. This feature isn't a universal win because it can > bring > + a cost of slightly increased overhead in some places. If > unsure > + say N here. > > This also aligns well with SCHED_MC and SCHED_SMT in > arch/x86/kconfig: > config SCHED_MC > def_bool y > prompt "Multi-core scheduler support" > > config SCHED_SMT > def_bool y if SMP > > But ARM64 is running in a different tradition, arch/arm64/Kconfig has > SCHED_MC and SCHED_SMT as below: > config SCHED_MC > bool "Multi-core scheduler support" > help > ... > > config SCHED_SMT > bool "SMT scheduler support" > help > ... > > Barry, Found one minor fix to the x86 patch to take care of compile error for !CONFIG_SMP. Thanks. Tim diff --git a/arch/x86/include/asm/topology.h b/arch/x86/include/asm/topology.h index 2548d824f103..cc164777e661 100644 --- a/arch/x86/include/asm/topology.h +++ b/arch/x86/include/asm/topology.h @@ -109,12 +109,12 @@ 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; #ifdef CONFIG_SMP +#define topology_cluster_id(cpu) (per_cpu(cpu_l2c_id, cpu)) #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))
Powered by blists - more mailing lists