On Wed, 27 Feb 2019 15:50:36 -0700 Keith Busch <keith.busch@xxxxxxxxx> wrote: > Save the best performace access attributes and register these with the performance > memory's node if HMAT provides the locality table. While HMAT does make > it possible to know performance for all possible initiator-target > pairings, we export only the local pairings at this time. > > Acked-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > Signed-off-by: Keith Busch <keith.busch@xxxxxxxxx> Jonathan > --- > drivers/acpi/hmat/Kconfig | 5 ++++- > drivers/acpi/hmat/hmat.c | 10 +++++++++- > 2 files changed, 13 insertions(+), 2 deletions(-) > > diff --git a/drivers/acpi/hmat/Kconfig b/drivers/acpi/hmat/Kconfig > index 13cddd612a52..95a29964dbea 100644 > --- a/drivers/acpi/hmat/Kconfig > +++ b/drivers/acpi/hmat/Kconfig > @@ -2,7 +2,10 @@ > config ACPI_HMAT > bool "ACPI Heterogeneous Memory Attribute Table Support" > depends on ACPI_NUMA > + select HMEM_REPORTING > help > If set, this option has the kernel parse and report the > platform's ACPI HMAT (Heterogeneous Memory Attributes Table), > - and register memory initiators with their targets. > + register memory initiators with their targets, and export > + performance attributes through the node's sysfs device if > + provided. > diff --git a/drivers/acpi/hmat/hmat.c b/drivers/acpi/hmat/hmat.c > index bb6a11653729..5b469c98a454 100644 > --- a/drivers/acpi/hmat/hmat.c > +++ b/drivers/acpi/hmat/hmat.c > @@ -549,12 +549,20 @@ static __init void hmat_register_target_initiators(struct memory_target *target) > } > } > > +static __init void hmat_register_target_perf(struct memory_target *target) > +{ > + unsigned mem_nid = pxm_to_node(target->memory_pxm); > + node_set_perf_attrs(mem_nid, &target->hmem_attrs, 0); > +} > + > static __init void hmat_register_targets(void) > { > struct memory_target *target; > > - list_for_each_entry(target, &targets, node) > + list_for_each_entry(target, &targets, node) { > hmat_register_target_initiators(target); > + hmat_register_target_perf(target); > + } > } > > static __init void hmat_free_structures(void)