[PATCH v7 13/13] arm64: topology: divorce MC scheduling domain from core_siblings
From: Morten Rasmussen <hidden>
Date: 2018-03-14 12:43:02
Also in:
linux-acpi, linux-riscv, lkml
From: Morten Rasmussen <hidden>
Date: 2018-03-14 12:43:02
Also in:
linux-acpi, linux-riscv, lkml
On Thu, Mar 08, 2018 at 09:41:17PM +0100, Brice Goglin wrote:
quoted
Is there a good reason for diverging instead of adjusting the core_sibling mask? On x86 the core_siblings mask is defined by the last level cache span so they don't have this issue.No. core_siblings is defined as the list of cores that have the same physical_package_id (see the doc of sysfs topology files), and LLC can be smaller than that. Example with E5v3 with cluster-on-die (two L3 per package, core_siblings is twice larger than L3 cpumap): https://www.open-mpi.org/projects/hwloc/lstopo/images/2XeonE5v3.v1.11.png On AMD EPYC, you even have up to 8 LLC per package.
Right, I missed the fact that x86 reports a different cpumask for topology_core_cpumask() which defines the core_siblings exported through sysfs than the mask used to define MC level in the scheduler topology. The sysfs core_siblings is defined by the package_id, while the MC level is defined by the LLC. Thanks for pointing this out. On arm64 MC level and sysfs core_siblings are currently defined using the same mask, but we can't break sysfs, so using different masks is the only option. Morten