From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot0-x241.google.com (mail-ot0-x241.google.com [IPv6:2607:f8b0:4003:c0f::241]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 6CC5922468020 for ; Fri, 16 Mar 2018 18:10:15 -0700 (PDT) Received: by mail-ot0-x241.google.com with SMTP id l5-v6so12162637otf.9 for ; Fri, 16 Mar 2018 18:16:40 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <152116964416.8343.514895686858363582.stgit@dwillia2-desk3.amr.corp.intel.com> References: <152116964416.8343.514895686858363582.stgit@dwillia2-desk3.amr.corp.intel.com> From: Dan Williams Date: Fri, 16 Mar 2018 18:16:39 -0700 Message-ID: Subject: Re: [PATCH] acpi, numa: fix pxm to online numa node associations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: linux-nvdimm-bounces@lists.01.org Sender: "Linux-nvdimm" To: linux-nvdimm Cc: Linux ACPI , "Rafael J. Wysocki" , Linux Kernel Mailing List , stable List-ID: [ adding Toshi's correct address ] On Thu, Mar 15, 2018 at 8:08 PM, Dan Williams wrote: > Commit 99759869faf1 "acpi: Add acpi_map_pxm_to_online_node()" added > support for mapping a given proximity to its nearest, by SLIT distance, > online node. However, it sometimes returns unexpected results due to the > fact that it switches from comparing the PXM node to the last node that > was closer than the current max. > > for_each_online_node(n) { > dist = node_distance(node, n); > if (dist < min_dist) { > min_dist = dist; > node = n; <---- from this point we're using the > wrong node for node_distance() > > > Fixes: 99759869faf1 ("acpi: Add acpi_map_pxm_to_online_node()") > Cc: > Cc: Toshi Kani > Cc: Rafael J. Wysocki > > Signed-off-by: Dan Williams > --- > Rafael, I can take this through the nvdimm tree with your ack. I have a > few other nvdimm fixes pending for 4.16. > > drivers/acpi/numa.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c > index 8ccaae3550d2..85167603b9c9 100644 > --- a/drivers/acpi/numa.c > +++ b/drivers/acpi/numa.c > @@ -103,25 +103,27 @@ int acpi_map_pxm_to_node(int pxm) > */ > int acpi_map_pxm_to_online_node(int pxm) > { > - int node, n, dist, min_dist; > + int node, min_node; > > node = acpi_map_pxm_to_node(pxm); > > if (node == NUMA_NO_NODE) > node = 0; > > + min_node = node; > if (!node_online(node)) { > - min_dist = INT_MAX; > + int min_dist = INT_MAX, dist, n; > + > for_each_online_node(n) { > dist = node_distance(node, n); > if (dist < min_dist) { > min_dist = dist; > - node = n; > + min_node = n; > } > } > } > > - return node; > + return min_node; > } > EXPORT_SYMBOL(acpi_map_pxm_to_online_node); > > _______________________________________________ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm