From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keith Busch Subject: [PATCHv6 08/10] acpi/hmat: Register performance attributes Date: Thu, 14 Feb 2019 10:10:15 -0700 Message-ID: <20190214171017.9362-9-keith.busch@intel.com> References: <20190214171017.9362-1-keith.busch@intel.com> Return-path: In-Reply-To: <20190214171017.9362-1-keith.busch@intel.com> Sender: linux-kernel-owner@vger.kernel.org To: linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, linux-mm@kvack.org, linux-api@vger.kernel.org Cc: Greg Kroah-Hartman , Rafael Wysocki , Dave Hansen , Dan Williams , Keith Busch List-Id: linux-api@vger.kernel.org Save the best performance access attributes and register these with the 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. Signed-off-by: Keith Busch --- drivers/acpi/hmat/hmat.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/acpi/hmat/hmat.c b/drivers/acpi/hmat/hmat.c index b29f7160c7bb..6833c4897ff4 100644 --- a/drivers/acpi/hmat/hmat.c +++ b/drivers/acpi/hmat/hmat.c @@ -549,12 +549,27 @@ 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); + + if (!target->hmem_attrs.read_bandwidth && + !target->hmem_attrs.read_latency && + !target->hmem_attrs.write_bandwidth && + !target->hmem_attrs.write_latency) + return; + + 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) -- 2.14.4