From patchwork Wed Apr 20 01:40:36 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Daney X-Patchwork-Id: 8885001 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 1AD0A9F36E for ; Wed, 20 Apr 2016 01:44:56 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 461AD2024F for ; Wed, 20 Apr 2016 01:44:55 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 783D7200ED for ; Wed, 20 Apr 2016 01:44:54 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1ashAz-0003oI-7H; Wed, 20 Apr 2016 01:43:33 +0000 Received: from merlin.infradead.org ([2001:4978:20e::2]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1ash8r-0000jl-5e for linux-arm-kernel@bombadil.infradead.org; Wed, 20 Apr 2016 01:41:21 +0000 Received: from mail-pf0-x22b.google.com ([2607:f8b0:400e:c00::22b]) by merlin.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1ash8p-00071Y-Ul for linux-arm-kernel@lists.infradead.org; Wed, 20 Apr 2016 01:41:20 +0000 Received: by mail-pf0-x22b.google.com with SMTP id n1so12473187pfn.2 for ; Tue, 19 Apr 2016 18:40:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=EQgSEgJfK/DZXrzD9x6kxmDm0X7j7N/KiWiMmOHVgcw=; b=0NoX1y2fui3DEu0mQGqoS/IAq0JTg5E/AZqNeneIiwkDN8SVDGpSTrrG88H1pyU8gC rPO1C1AoOSqE4UZjORIKGl0y4tK0CJE133Yuy9I+MEgxp+vbJYEkNzyTe73QDmVlbXrv 5piW5YT9a5JL/81XFbNGlvS1LFFbw//NWJX9lYpF+tCZ6FDnOerxVOyWtg8j+dbeGbQJ QLEHKiZZ/n4xkKfG2CtR456L+doXGZ1LqLOn2/43RHzH1gjbqb4LiD+lbwMQPegVNsiO bmtG4d7C/+ioENzBIi943jdU1+JkwBZ7Wd4CD8FMNaSyZe4GEsIetexRXbYiJw232jKv RdCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=EQgSEgJfK/DZXrzD9x6kxmDm0X7j7N/KiWiMmOHVgcw=; b=Fe/KQNLM0qO/+EQjDuNKPKPzgSaoR+BBrMkRVP5LQUpW2pc/pcXibRv4xt+f24ud93 echtCR80OcoPemu0Fo1csrUaG+v2a4BUoR+bz52kqzlsbGvfR24XCZaPEQ0bEE2cglL1 43HA+G05D/A2Hc73C2eoxk5u0mV7ZZdNRNdmvyLTKwj8UX2tGgcBFhPhtgBynco4GRXd eUb7CrQ1krxRBLghENx81HzdxcbYH0VdA5B/UEMvltXmVcE9oQuCQlq9eGzKogGGDJQM VwhZgB+GcQ9aN6+QmEPuEIc4P+a/7MKGOlbHiH1qw+b4Q1lgUT2kJjv1LEkw/voA+rnv 2Kjw== X-Gm-Message-State: AOPr4FXRhxAYBlHpVDhkXfMszdd50tWac1BWiXE4PbAKLZXUlvorFV3Gp8Dmp2WgtF0O6A== X-Received: by 10.98.88.68 with SMTP id m65mr8575126pfb.4.1461116458896; Tue, 19 Apr 2016 18:40:58 -0700 (PDT) Received: from dl.caveonetworks.com ([64.2.3.194]) by smtp.gmail.com with ESMTPSA id o16sm6095460pfi.5.2016.04.19.18.40.49 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 19 Apr 2016 18:40:52 -0700 (PDT) Received: from dl.caveonetworks.com (localhost.localdomain [127.0.0.1]) by dl.caveonetworks.com (8.14.5/8.14.5) with ESMTP id u3K1em3K023084; Tue, 19 Apr 2016 18:40:48 -0700 Received: (from ddaney@localhost) by dl.caveonetworks.com (8.14.5/8.14.5/Submit) id u3K1emUf023083; Tue, 19 Apr 2016 18:40:48 -0700 From: David Daney To: Will Deacon , linux-arm-kernel@lists.infradead.org, Mark Rutland , Catalin Marinas , Tony Luck , Fenghua Yu , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , x86@kernel.org, "Rafael J. Wysocki" , Len Brown , Rob Herring , Frank Rowand , Grant Likely , Robert Moore , Lv Zheng , Hanjun Guo , Marc Zyngier , linux-ia64@vger.kernel.org, linux-acpi@vger.kernel.org, devel@acpica.org Subject: [PATCH v5 11/14] acpi, numa, srat: Improve SRAT error detection and add messages. Date: Tue, 19 Apr 2016 18:40:36 -0700 Message-Id: <1461116439-22991-12-git-send-email-ddaney.cavm@gmail.com> X-Mailer: git-send-email 1.7.11.7 In-Reply-To: <1461116439-22991-1-git-send-email-ddaney.cavm@gmail.com> References: <1461116439-22991-1-git-send-email-ddaney.cavm@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160419_214120_132335_EFB55A78 X-CRM114-Status: GOOD ( 15.66 ) X-Spam-Score: -2.7 (--) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Robert Richter , linux-kernel@vger.kernel.org, David Daney MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-5.1 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: David Daney Loosely based on code from Robert Richter and Hanjun Guo. Improve out of range node detection as well as allow for Larger SRAT entities. Add printing of nice messages. Signed-off-by: David Daney --- drivers/acpi/numa.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c index 8ba90ad..d244018 100644 --- a/drivers/acpi/numa.c +++ b/drivers/acpi/numa.c @@ -252,8 +252,11 @@ acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma) if (srat_disabled()) goto out_err; - if (ma->header.length != sizeof(struct acpi_srat_mem_affinity)) + if (ma->header.length < sizeof(struct acpi_srat_mem_affinity)) { + pr_err("SRAT: Unexpected header length: %d\n", + ma->header.length); goto out_err_bad_srat; + } if ((ma->flags & ACPI_SRAT_MEM_ENABLED) == 0) goto out_err; hotpluggable = ma->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE; @@ -267,13 +270,17 @@ acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma) pxm &= 0xff; node = acpi_map_pxm_to_node(pxm); - if (node < 0) { - printk(KERN_ERR "SRAT: Too many proximity domains.\n"); + if (node == NUMA_NO_NODE || node >= MAX_NUMNODES) { + pr_err("SRAT: Too many proximity domains.\n"); goto out_err_bad_srat; } - if (numa_add_memblk(node, start, end) < 0) + if (numa_add_memblk(node, start, end) < 0) { + pr_err("SRAT: Failed to add memblk to node %u [mem %#010Lx-%#010Lx]\n", + node, (unsigned long long) start, + (unsigned long long) end - 1); goto out_err_bad_srat; + } node_set(node, numa_nodes_parsed);