]> git.baikalelectronics.ru Git - kernel.git/commitdiff
arch_topology: Use the last level cache information from the cacheinfo
authorSudeep Holla <sudeep.holla@arm.com>
Mon, 4 Jul 2022 10:15:54 +0000 (11:15 +0100)
committerSudeep Holla <sudeep.holla@arm.com>
Mon, 4 Jul 2022 15:22:29 +0000 (16:22 +0100)
The cacheinfo is now initialised early along with the CPU topology
initialisation. Instead of relying on the LLC ID information parsed
separately only with ACPI PPTT elsewhere, migrate to use the similar
information from the cacheinfo.

This is generic for both DT and ACPI systems. The ACPI LLC ID information
parsed separately can now be removed from arch specific code.

Link: https://lore.kernel.org/r/20220704101605.1318280-11-sudeep.holla@arm.com
Tested-by: Ionela Voinescu <ionela.voinescu@arm.com>
Tested-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Gavin Shan <gshan@redhat.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
drivers/base/arch_topology.c

index e2f7d9ea558e9f38256e85e1a39611fd99fbfcfd..4f936c984fb65b1c9f998e873a439429935cd3cd 100644 (file)
@@ -668,7 +668,8 @@ const struct cpumask *cpu_coregroup_mask(int cpu)
                /* not numa in package, lets use the package siblings */
                core_mask = &cpu_topology[cpu].core_sibling;
        }
-       if (cpu_topology[cpu].llc_id != -1) {
+
+       if (last_level_cache_is_valid(cpu)) {
                if (cpumask_subset(&cpu_topology[cpu].llc_sibling, core_mask))
                        core_mask = &cpu_topology[cpu].llc_sibling;
        }
@@ -699,7 +700,7 @@ void update_siblings_masks(unsigned int cpuid)
        for_each_online_cpu(cpu) {
                cpu_topo = &cpu_topology[cpu];
 
-               if (cpu_topo->llc_id != -1 && cpuid_topo->llc_id == cpu_topo->llc_id) {
+               if (last_level_cache_is_shared(cpu, cpuid)) {
                        cpumask_set_cpu(cpu, &cpuid_topo->llc_sibling);
                        cpumask_set_cpu(cpuid, &cpu_topo->llc_sibling);
                }