linux-stable/drivers/base
Yicong Yang 5c2712387d cacheinfo: Fix LLC is not exported through sysfs
After entering 6.3-rc1 the LLC cacheinfo is not exported on our ACPI
based arm64 server. This is because the LLC cacheinfo is partly reset
when secondary CPUs boot up. On arm64 the primary cpu will allocate
and setup cacheinfo:
init_cpu_topology()
  for_each_possible_cpu()
    fetch_cache_info() // Allocate cacheinfo and init levels
detect_cache_attributes()
  cache_shared_cpu_map_setup()
    if (!last_level_cache_is_valid()) // not valid, setup LLC
      cache_setup_properties() // setup LLC

On secondary CPU boot up:
detect_cache_attributes()
  populate_cache_leaves()
    get_cache_type() // Get cache type from clidr_el1,
                     // for LLC type=CACHE_TYPE_NOCACHE
  cache_shared_cpu_map_setup()
    if (!last_level_cache_is_valid()) // Valid and won't go to this branch,
                                      // leave LLC's type=CACHE_TYPE_NOCACHE

The last_level_cache_is_valid() use cacheinfo->{attributes, fw_token} to
test it's valid or not, but populate_cache_leaves() will only reset
LLC's type, so we won't try to re-setup LLC's type and leave it
CACHE_TYPE_NOCACHE and won't export it through sysfs.

This patch tries to fix this by not re-populating the cache leaves if
the LLC is valid.

Fixes: 5944ce092b ("arch_topology: Build cacheinfo from primary CPU")
Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
Reviewed-by: Pierre Gondois <pierre.gondois@arm.com>
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Link: https://lore.kernel.org/r/20230328114915.33340-1-yangyicong@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-03-29 12:04:10 +02:00
..
firmware_loader
power We have one small patch to the clk core this time around. It fixes a corner 2023-02-25 15:16:23 -08:00
regmap Merge remote-tracking branch 'regmap/for-6.3' into regmap-next 2023-02-17 02:14:50 +00:00
test
arch_numa.c
arch_topology.c
attribute_container.c
auxiliary.c
base.h
bus.c driver core: bus: Handle early calls to bus_to_subsys() 2023-02-25 10:51:21 +01:00
cacheinfo.c cacheinfo: Fix LLC is not exported through sysfs 2023-03-29 12:04:10 +02:00
class.c
component.c
container.c
core.c driver core: fw_devlink: Print full path and name of fwnode 2023-02-25 10:52:02 +01:00
cpu.c
dd.c
devcoredump.c
devres.c
devtmpfs.c Driver core changes for 6.3-rc1 2023-02-24 12:58:55 -08:00
driver.c
firmware.c
hypervisor.c
init.c
isa.c
Kconfig
Makefile
map.c
memory.c
module.c
node.c
physical_location.c
physical_location.h
pinctrl.c
platform-msi.c genirq/msi, platform-msi: Ensure that MSI descriptors are unreferenced 2023-03-02 18:09:44 +01:00
platform.c
property.c
soc.c
swnode.c
syscore.c
topology.c
trace.c
trace.h
transport_class.c