Message ID | 20220621192034.3332546-1-sudeep.holla@arm.com (mailing list archive) |
---|---|
Headers | show |
Series | arch_topology: Updates to add socket support and fix cluster ids | expand |
Hi Sudeep, On Tuesday 21 Jun 2022 at 20:20:14 (+0100), Sudeep Holla wrote: > Hi All, > > This version updates cacheinfo to populate and use the information from > there for all the cache topology. > > This series intends to fix some discrepancies we have in the CPU topology > parsing from the device tree /cpu-map node. Also this diverges from the > behaviour on a ACPI enabled platform. The expectation is that both DT > and ACPI enabled systems must present consistent view of the CPU topology. > > Currently we assign generated cluster count as the physical package identifier > for each CPU which is wrong. The device tree bindings for CPU topology supports > sockets to infer the socket or physical package identifier for a given CPU. > Also we don't check if all the cores/threads belong to the same cluster before > updating their sibling masks which is fine as we don't set the cluster id yet. > > These changes also assigns the cluster identifier as parsed from the device tree > cluster nodes within /cpu-map without support for nesting of the clusters. > Finally, it also add support for socket nodes in /cpu-map. With this the > parsing of exact same information from ACPI PPTT and /cpu-map DT node > aligns well. > > The only exception is that the last level cache id information can be > inferred from the same ACPI PPTT while we need to parse CPU cache nodes > in the device tree. > > Hi Greg, > > I had not cc-ed you on earlier 3 versions as we had some disagreement > amongst Arm developers which we have not settled. Let me know how you want to s/not/now :) > merge this once you agree with the changes. I can set pull request if > you prefer. Let me know. > > v4[3]->v4: > - Updated ACPI PPTT fw_token to use table offset instead of virtual > address as it could get changed for everytime it is mapped before > the global acpi_permanent_mmap is set > - Added warning for the topology with nested clusters > - Added update to cpu_clustergroup_mask so that introduction of > correct cluster_id doesn't break existing platforms by limiting > the span of clustergroup_mask(by Ionela) > I've tested v4 on quite a few platforms: - DT: Juno R0, DB845c, RB5 - ACPI: TX2, Ampere Altra, Kunpeng920 and it all looks good from my point of view (topology and sched domain hierarchy). So for the full set (after the changes requested for 16/20 and 20/20): Tested-by: Ionela Voinescu <ionela.voinescu@arm.com> Hope it helps, Ionela.
On Mon, Jun 27, 2022 at 02:54:28PM +0100, Ionela Voinescu wrote: > Hi Sudeep, > > On Tuesday 21 Jun 2022 at 20:20:14 (+0100), Sudeep Holla wrote: > > Hi All, > > > > This version updates cacheinfo to populate and use the information from > > there for all the cache topology. > > > > This series intends to fix some discrepancies we have in the CPU topology > > parsing from the device tree /cpu-map node. Also this diverges from the > > behaviour on a ACPI enabled platform. The expectation is that both DT > > and ACPI enabled systems must present consistent view of the CPU topology. > > > > Currently we assign generated cluster count as the physical package identifier > > for each CPU which is wrong. The device tree bindings for CPU topology supports > > sockets to infer the socket or physical package identifier for a given CPU. > > Also we don't check if all the cores/threads belong to the same cluster before > > updating their sibling masks which is fine as we don't set the cluster id yet. > > > > These changes also assigns the cluster identifier as parsed from the device tree > > cluster nodes within /cpu-map without support for nesting of the clusters. > > Finally, it also add support for socket nodes in /cpu-map. With this the > > parsing of exact same information from ACPI PPTT and /cpu-map DT node > > aligns well. > > > > The only exception is that the last level cache id information can be > > inferred from the same ACPI PPTT while we need to parse CPU cache nodes > > in the device tree. > > > > Hi Greg, > > > > I had not cc-ed you on earlier 3 versions as we had some disagreement > > amongst Arm developers which we have not settled. Let me know how you want to > > s/not/now :) > > > merge this once you agree with the changes. I can set pull request if > > you prefer. Let me know. > > > > v4[3]->v4: > > - Updated ACPI PPTT fw_token to use table offset instead of virtual > > address as it could get changed for everytime it is mapped before > > the global acpi_permanent_mmap is set > > - Added warning for the topology with nested clusters > > - Added update to cpu_clustergroup_mask so that introduction of > > correct cluster_id doesn't break existing platforms by limiting > > the span of clustergroup_mask(by Ionela) > > > > I've tested v4 on quite a few platforms: > - DT: Juno R0, DB845c, RB5 > - ACPI: TX2, Ampere Altra, Kunpeng920 > > and it all looks good from my point of view (topology and sched domain > hierarchy). > > So for the full set (after the changes requested for 16/20 and 20/20): > > Tested-by: Ionela Voinescu <ionela.voinescu@arm.com> > Thanks for all the review and testing. Much appreciated!