Hello Keith Several issues: * We always get a memory_side_cache, even if nothing was found in ACPI. You should at least ignore the cache if size==0? * Your code seems to only work with a single level of cache, since there's a single cache_attrs entry in each target structure. * I was getting a section mismatch warning and a crash on PMEM node hotplug until I applied the patch below. WARNING: vmlinux.o(.text+0x47d3f7): Section mismatch in reference from the function hmat_callback() to the function .init.text:hmat_register_target() The function hmat_callback() references the function __init hmat_register_target(). This is often because hmat_callback lacks a __init annotation or the annotation of hmat_register_target is wrong. Thanks Brice acpi/hmat: hmat_register_target() isn't __init only It's called during PMEM node hotplug with kmem dax driver. Signed-off-by: Brice Goglin <Brice.Goglin@xxxxxxxx> --- a/drivers/acpi/hmat/hmat.c +++ b/drivers/acpi/hmat/hmat.c @@ -598,7 +598,7 @@ static void hmat_register_target_perf(struct memory_target *target) node_set_perf_attrs(mem_nid, &target->hmem_attrs, 0); } -static __init void hmat_register_target(struct memory_target *target) +static void hmat_register_target(struct memory_target *target) { if (!node_online(pxm_to_node(target->memory_pxm))) return; |