From patchwork Tue Jul 18 11:41:28 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vijay Kilari X-Patchwork-Id: 9848083 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 4088F60392 for ; Tue, 18 Jul 2017 11:44:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2D0D0283C3 for ; Tue, 18 Jul 2017 11:44:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 21DEB28497; Tue, 18 Jul 2017 11:44:49 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.1 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,FREEMAIL_FROM,RCVD_IN_DNSWL_MED,RCVD_IN_SORBS_SPAM, RCVD_IN_SORBS_WEB,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 76A2B283C3 for ; Tue, 18 Jul 2017 11:44:48 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dXQtm-0006Ut-3w; Tue, 18 Jul 2017 11:42:42 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dXQtk-0006U2-Pg for xen-devel@lists.xen.org; Tue, 18 Jul 2017 11:42:40 +0000 Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id 4E/AD-02181-F24FD695; Tue, 18 Jul 2017 11:42:39 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrOIsWRWlGSWpSXmKPExsXiVRvspKv/JTf S4PErQYslHxezODB6HN39mymAMYo1My8pvyKBNePfi3+sBZtcKpqnz2NuYDxk0cXIxSEkMJFR Yue8aawgDovASxaJr4s+s4A4EgL9rBKnVu5l7GLkBHLiJJa33WODsMskHj7bxwxiCwmoSnT8f 8sOMaqNSeLRuptMIAk2ARmJI88PgNkiAtIS1z5fZgQpYhbYxiSx6fpUdpCEsICbxJSu7ywgNg vQpAe3VrKC2LwCrhJ7d/8A2sYBtE1BYs4kG5AwJ1D5oq5L7BCLXSVu9K1kncAosICRYRWjRnF qUVlqka6huV5SUWZ6RkluYmaOrqGBsV5uanFxYnpqTmJSsV5yfu4mRmBwMQDBDsaXpz0PMUpy MCmJ8q4+kBspxJeUn1KZkVicEV9UmpNafIhRhoNDSYKX7TNQTrAoNT21Ii0zBxjmMGkJDh4lE V5xkDRvcUFibnFmOkTqFKMxx6QD278wcbya8P8bkxBLXn5eqpQ4ryhIqQBIaUZpHtwgWPxdYp SVEuZlBDpNiKcgtSg3swRV/hWjOAejkjCvOsgUnsy8Erh9r4BOYQI6Rdg3B+SUkkSElBQwojc 0KJXI7brga6nYkftwhvbaa0FK9p/e3zoozvtCjkvzm/jFJfkXKtQuP/zXvP8N48lX3lsvmnb+ T+yaFKEZ/G3BPG/pckGNmSns+xZPaJR7IbRw09VnLWLiPS7nPu62tpumplpcUdTtt10iR/p+S y3bwRcPjk+osC/bw/io/I1lQ6xY3wZ9JZbijERDLeai4kQAIk+KU7oCAAA= X-Env-Sender: vijay.kilari@gmail.com X-Msg-Ref: server-2.tower-31.messagelabs.com!1500378157!94283588!1 X-Originating-IP: [74.125.83.66] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.4.25; banners=-,-,- X-VirusChecked: Checked Received: (qmail 6606 invoked from network); 18 Jul 2017 11:42:39 -0000 Received: from mail-pg0-f66.google.com (HELO mail-pg0-f66.google.com) (74.125.83.66) by server-2.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP; 18 Jul 2017 11:42:38 -0000 Received: by mail-pg0-f66.google.com with SMTP id v190so2548109pgv.1 for ; Tue, 18 Jul 2017 04:42:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=gyBLWxAlze7/OxxEiDLYmNEEyIcSjNXdlIQP/TY9+10=; b=kreRTgzE1wovjOygtU0I6TbFoiYVWhNszDYFk8mNxo1oIdE73kZuhxQQzYxDKiWL/q kKMZu3xqL0A5jxicxb5yC4v31hVxiz4MYLAcB/DLnIeiVLD1Vb28DefGKt1Noz5LNX2k E/UnWUE5atG9pzL0zONNiR+fNwpOiVjNKFbOnnnylZOvhDO/QTaf1dZq6IyZy4SP4o9A jvGzWz5R/QQIHYoWYAfDv0GYle3TdTWmG20KU6mnuQqPUpHuBKWQ2EUdfF6JQvYftspZ 07wupgZc9mRYYuXBy7taJiuDE+Kn9I7FMMK983/xntMnog5KW1PMMK432p5BdHYyTvW5 4L7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=gyBLWxAlze7/OxxEiDLYmNEEyIcSjNXdlIQP/TY9+10=; b=n8o7iAVeNY+pEYdqf533zZYivP7y5GjLNNbHPBI2qO8VrOoJlF1buFMh2IlUSpYSVR DmvKo+ccXCrRQjTgVA3F8czlbjj+4E1jh5Bb7dNYXHCmpJZUTpPCgcodDJ3dChJ4e8wt 3ST7OxIu3KPsqDga48oJlXfhFN/dg48kA/ixv9PcszsGm3fCCNZm1Cnsbgq9YgW3KUCb 10wW6pR3Etz8zDHHuamx5NLTzU3mqW8s9D0bC26taJ9CSSeUjlse6c3+3KNVbGGKYJA4 kuRkGA8lzuo/JSuhjgkWZZqiwEMC2OjmaSeef1kL6a58AAdF5bQbUGAV0dANMp7VQwcg tBzg== X-Gm-Message-State: AIVw1115yj08EpQl9mxIJhuBhhmGsNaTQBNtO6ingSFchFtw1oLYh/07 Wri2IVlBBd5J5Dqj X-Received: by 10.98.8.132 with SMTP id 4mr1209298pfi.109.1500378157096; Tue, 18 Jul 2017 04:42:37 -0700 (PDT) Received: from cavium-Vostro-2520.caveonetworks.com ([111.93.218.67]) by smtp.gmail.com with ESMTPSA id r27sm4879707pfe.0.2017.07.18.04.42.32 (version=TLS1_1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 18 Jul 2017 04:42:36 -0700 (PDT) From: vijay.kilari@gmail.com To: xen-devel@lists.xen.org Date: Tue, 18 Jul 2017 17:11:28 +0530 Message-Id: <1500378106-2620-7-git-send-email-vijay.kilari@gmail.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1500378106-2620-1-git-send-email-vijay.kilari@gmail.com> References: <1500378106-2620-1-git-send-email-vijay.kilari@gmail.com> Cc: kevin.tian@intel.com, sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, julien.grall@arm.com, jbeulich@suse.com, Vijaya Kumar K Subject: [Xen-devel] [RFC PATCH v3 06/24] x86: NUMA: Rename some generic functions X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Vijaya Kumar K Rename some function in ACPI code as follow - Rename setup_node to acpi_setup_node - Rename bad_srat to numa_failed - Rename nodes_cover_memory to arch_sanitize_nodes_memory and changed return type to bool - Rename acpi_scan_nodes to numa_scan_nodes Also introduce reset_pxm2node() to reset pxm2node variable. This avoids exporting pxm2node. Signed-off-by: Vijaya Kumar K --- v3: Changed return type of arch_sanitize_nodes_memory --- xen/arch/x86/numa.c | 2 +- xen/arch/x86/smpboot.c | 2 +- xen/arch/x86/srat.c | 55 ++++++++++++++++++++++++++-------------------- xen/arch/x86/x86_64/mm.c | 2 +- xen/include/asm-x86/acpi.h | 2 +- xen/include/asm-x86/numa.h | 2 +- 6 files changed, 36 insertions(+), 29 deletions(-) diff --git a/xen/arch/x86/numa.c b/xen/arch/x86/numa.c index 2ea2ec0..44c2e08 100644 --- a/xen/arch/x86/numa.c +++ b/xen/arch/x86/numa.c @@ -271,7 +271,7 @@ void __init numa_initmem_init(unsigned long start_pfn, unsigned long end_pfn) #ifdef CONFIG_ACPI_NUMA if ( !numa_off && - !acpi_scan_nodes(pfn_to_paddr(start_pfn), pfn_to_paddr(end_pfn)) ) + !numa_scan_nodes(pfn_to_paddr(start_pfn), pfn_to_paddr(end_pfn)) ) return; #endif diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c index 8d91f6c..78af0d2 100644 --- a/xen/arch/x86/smpboot.c +++ b/xen/arch/x86/smpboot.c @@ -957,7 +957,7 @@ int cpu_add(uint32_t apic_id, uint32_t acpi_id, uint32_t pxm) if ( !srat_disabled() ) { - nodeid_t node = setup_node(pxm); + nodeid_t node = acpi_setup_node(pxm); if ( node == NUMA_NO_NODE ) { diff --git a/xen/arch/x86/srat.c b/xen/arch/x86/srat.c index 42cca5a..03bc37d 100644 --- a/xen/arch/x86/srat.c +++ b/xen/arch/x86/srat.c @@ -85,6 +85,14 @@ static inline bool node_found(unsigned int idx, unsigned int pxm) (pxm2node[idx].node != NUMA_NO_NODE)); } +static void reset_pxm2node(void) +{ + unsigned int i; + + for (i = 0; i < ARRAY_SIZE(pxm2node); i++) + pxm2node[i].node = NUMA_NO_NODE; +} + nodeid_t pxm_to_node(unsigned int pxm) { unsigned int i; @@ -99,7 +107,7 @@ nodeid_t pxm_to_node(unsigned int pxm) return NUMA_NO_NODE; } -nodeid_t setup_node(unsigned int pxm) +nodeid_t acpi_setup_node(unsigned int pxm) { nodeid_t node; unsigned int idx; @@ -188,15 +196,14 @@ static void __init cutoff_node(nodeid_t i, paddr_t start, paddr_t end) } } -static void __init bad_srat(void) +static void __init numa_failed(void) { int i; printk(KERN_ERR "SRAT: SRAT not used.\n"); acpi_numa = -1; for (i = 0; i < MAX_LOCAL_APIC; i++) apicid_to_node[i] = NUMA_NO_NODE; - for (i = 0; i < ARRAY_SIZE(pxm2node); i++) - pxm2node[i].node = NUMA_NO_NODE; + reset_pxm2node(); mem_hotplug = 0; } @@ -252,7 +259,7 @@ acpi_numa_x2apic_affinity_init(const struct acpi_srat_x2apic_cpu_affinity *pa) if (srat_disabled()) return; if (pa->header.length < sizeof(struct acpi_srat_x2apic_cpu_affinity)) { - bad_srat(); + numa_failed(); return; } if (!(pa->flags & ACPI_SRAT_CPU_ENABLED)) @@ -263,9 +270,9 @@ acpi_numa_x2apic_affinity_init(const struct acpi_srat_x2apic_cpu_affinity *pa) } pxm = pa->proximity_domain; - node = setup_node(pxm); + node = acpi_setup_node(pxm); if (node == NUMA_NO_NODE) { - bad_srat(); + numa_failed(); return; } @@ -286,7 +293,7 @@ acpi_numa_processor_affinity_init(const struct acpi_srat_cpu_affinity *pa) if (srat_disabled()) return; if (pa->header.length != sizeof(struct acpi_srat_cpu_affinity)) { - bad_srat(); + numa_failed(); return; } if (!(pa->flags & ACPI_SRAT_CPU_ENABLED)) @@ -297,9 +304,9 @@ acpi_numa_processor_affinity_init(const struct acpi_srat_cpu_affinity *pa) pxm |= pa->proximity_domain_hi[1] << 16; pxm |= pa->proximity_domain_hi[2] << 24; } - node = setup_node(pxm); + node = acpi_setup_node(pxm); if (node == NUMA_NO_NODE) { - bad_srat(); + numa_failed(); return; } apicid_to_node[pa->apic_id] = node; @@ -322,7 +329,7 @@ acpi_numa_memory_affinity_init(const struct acpi_srat_mem_affinity *ma) if (srat_disabled()) return; if (ma->header.length != sizeof(struct acpi_srat_mem_affinity)) { - bad_srat(); + numa_failed(); return; } if (!(ma->flags & ACPI_SRAT_MEM_ENABLED)) @@ -332,7 +339,7 @@ acpi_numa_memory_affinity_init(const struct acpi_srat_mem_affinity *ma) { dprintk(XENLOG_WARNING, "Too many numa entry, try bigger NR_NODE_MEMBLKS \n"); - bad_srat(); + numa_failed(); return; } @@ -341,9 +348,9 @@ acpi_numa_memory_affinity_init(const struct acpi_srat_mem_affinity *ma) pxm = ma->proximity_domain; if (srat_rev < 2) pxm &= 0xff; - node = setup_node(pxm); + node = acpi_setup_node(pxm); if (node == NUMA_NO_NODE) { - bad_srat(); + numa_failed(); return; } /* It is fine to add this area to the nodes data it will be used later*/ @@ -360,7 +367,7 @@ acpi_numa_memory_affinity_init(const struct acpi_srat_mem_affinity *ma) mismatch ? KERN_ERR : KERN_WARNING, pxm, start, end, memblk->start, memblk->end); if (mismatch) { - bad_srat(); + numa_failed(); return; } } else { @@ -370,7 +377,7 @@ acpi_numa_memory_affinity_init(const struct acpi_srat_mem_affinity *ma) "SRAT: PXM %u (%"PRIx64"-%"PRIx64") overlaps with PXM %u (%"PRIx64"-%"PRIx64")\n", pxm, start, end, node_to_pxm(get_memblk_nodeid(i)), memblk->start, memblk->end); - bad_srat(); + numa_failed(); return; } if (!(ma->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE)) { @@ -392,7 +399,7 @@ acpi_numa_memory_affinity_init(const struct acpi_srat_mem_affinity *ma) if (numa_add_memblk(node, start, ma->length)) { printk(KERN_ERR "SRAT: node-id %u out of range\n", node); - bad_srat(); + numa_failed(); return; } @@ -405,7 +412,7 @@ acpi_numa_memory_affinity_init(const struct acpi_srat_mem_affinity *ma) /* Sanity check to catch more bad SRATs (they are amazingly common). Make sure the PXMs cover all memory. */ -static int __init nodes_cover_memory(void) +static bool __init arch_sanitize_nodes_memory(void) { int i; @@ -443,10 +450,10 @@ static int __init nodes_cover_memory(void) if (start < end) { printk(KERN_ERR "SRAT: No PXM for e820 range: " "%016Lx - %016Lx\n", start, end); - return 0; + return false; } } - return 1; + return true; } void __init acpi_numa_arch_fixup(void) {} @@ -503,7 +510,7 @@ void __init srat_parse_regions(paddr_t addr) } /* Use the information discovered above to actually set up the nodes. */ -int __init acpi_scan_nodes(paddr_t start, paddr_t end) +int __init numa_scan_nodes(paddr_t start, paddr_t end) { unsigned int i; nodemask_t all_nodes_parsed; @@ -517,8 +524,8 @@ int __init acpi_scan_nodes(paddr_t start, paddr_t end) if (acpi_numa <= 0) return -1; - if (!nodes_cover_memory()) { - bad_srat(); + if (!arch_sanitize_nodes_memory()) { + numa_failed(); return -1; } @@ -529,7 +536,7 @@ int __init acpi_scan_nodes(paddr_t start, paddr_t end) memnode_shift = 0; printk(KERN_ERR "SRAT: No NUMA node hash function found. Contact maintainer\n"); - bad_srat(); + numa_failed(); return -1; } diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c index aa1b94f..a4ffa1f 100644 --- a/xen/arch/x86/x86_64/mm.c +++ b/xen/arch/x86/x86_64/mm.c @@ -1368,7 +1368,7 @@ int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm) if ( !mem_hotadd_check(spfn, epfn) ) return -EINVAL; - if ( (node = setup_node(pxm)) == NUMA_NO_NODE ) + if ( (node = acpi_setup_node(pxm)) == NUMA_NO_NODE ) return -EINVAL; if ( !valid_numa_range(spfn << PAGE_SHIFT, epfn << PAGE_SHIFT, node) ) diff --git a/xen/include/asm-x86/acpi.h b/xen/include/asm-x86/acpi.h index a6fad1e..220c2d7 100644 --- a/xen/include/asm-x86/acpi.h +++ b/xen/include/asm-x86/acpi.h @@ -104,7 +104,7 @@ extern void acpi_reserve_bootmem(void); #define ARCH_HAS_POWER_INIT 1 extern s8 acpi_numa; -extern int acpi_scan_nodes(paddr_t start, paddr_t end); +extern int numa_scan_nodes(paddr_t start, paddr_t end); #ifdef CONFIG_ACPI_SLEEP diff --git a/xen/include/asm-x86/numa.h b/xen/include/asm-x86/numa.h index 1bac25c..acf509c 100644 --- a/xen/include/asm-x86/numa.h +++ b/xen/include/asm-x86/numa.h @@ -36,7 +36,7 @@ extern bool numa_off; extern int srat_disabled(void); extern void numa_set_node(int cpu, nodeid_t node); -extern nodeid_t setup_node(unsigned int pxm); +extern nodeid_t acpi_setup_node(unsigned int pxm); extern void srat_detect_node(int cpu); extern void setup_node_bootmem(nodeid_t nodeid, paddr_t start, paddr_t end);