On 04/08/20 11:46, pet...@infradead.org wrote: > On Tue, Aug 04, 2020 at 09:03:07AM +0530, Srikar Dronamraju wrote: >> On Power9 a pair of cores can be presented by the firmware as a big-core >> for backward compatibility reasons, with 4 threads per (small) core and 8 >> threads per big-core. cpu_smt_mask() should generally point to the cpu mask >> of the (small)core. >> >> In order to maintain userspace backward compatibility (with Power8 chips in >> case of Power9) in enterprise Linux systems, the topology_sibling_cpumask >> has to be set to big-core. Hence override the default cpu_smt_mask() to be >> powerpc specific allowing for better scheduling behaviour on Power. > > Why does Linux userspace care about this?
Ditto; from [1], a core contains CPUs that all share the same L1 (and capacity, as per SD_SHARE_CPUCAPACITY). So IMO it makes perfect sense to have a first domain spanning L1, and its parent spanning L2 - that means topology_sibling_cpumask *itself* should span a single core rather than a pair. [1]: https://lkml.kernel.org/r/jhjr1sviswg.mog...@arm.com