From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Atish Patra <atish.patra@wdc.com>
Cc: <linux-kernel@vger.kernel.org>, Albert Ou <aou@eecs.berkeley.edu>,
Andrew Morton <akpm@linux-foundation.org>,
Anshuman Khandual <anshuman.khandual@arm.com>,
Anup Patel <anup@brainfault.org>, "Arnd Bergmann" <arnd@arndb.de>,
Catalin Marinas <catalin.marinas@arm.com>,
"David Hildenbrand" <david@redhat.com>,
Greentime Hu <greentime.hu@sifive.com>,
Bjorn Helgaas <helgaas@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jia He <justin.he@arm.com>, <linux-arch@vger.kernel.org>,
<linux-riscv@lists.infradead.org>,
"Mike Rapoport" <rppt@kernel.org>,
Nicolas Saenz Julienne <nsaenzjulienne@suse.de>,
Palmer Dabbelt <palmer@dabbelt.com>,
"Paul Walmsley" <paul.walmsley@sifive.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Steven Price <steven.price@arm.com>,
Will Deacon <will@kernel.org>, Zong Li <zong.li@sifive.com>
Subject: Re: [RFC/RFT PATCH v2 2/5] arm64, numa: Change the numa init function name to be generic
Date: Mon, 14 Sep 2020 15:30:48 +0100 [thread overview]
Message-ID: <20200914153048.000038ed@Huawei.com> (raw)
In-Reply-To: <20200912013441.9730-3-atish.patra@wdc.com>
On Fri, 11 Sep 2020 18:34:38 -0700
Atish Patra <atish.patra@wdc.com> wrote:
> As we are using generic numa implementation code, modify the init function
> name to indicate that generic implementation.
>
> Signed-off-by: Atish Patra <atish.patra@wdc.com>
A few comments inline but more about which layer we do the build protections
at than anything important.
Thanks,
Jonathan
> ---
> arch/arm64/kernel/acpi_numa.c | 13 -------------
> arch/arm64/mm/init.c | 4 ++--
> drivers/base/arch_numa.c | 29 ++++++++++++++++++++++++++---
> include/asm-generic/numa.h | 4 ++--
> 4 files changed, 30 insertions(+), 20 deletions(-)
>
> diff --git a/arch/arm64/kernel/acpi_numa.c b/arch/arm64/kernel/acpi_numa.c
> index 7ff800045434..96502ff92af5 100644
> --- a/arch/arm64/kernel/acpi_numa.c
> +++ b/arch/arm64/kernel/acpi_numa.c
> @@ -117,16 +117,3 @@ void __init acpi_numa_gicc_affinity_init(struct acpi_srat_gicc_affinity *pa)
>
> node_set(node, numa_nodes_parsed);
> }
> -
> -int __init arm64_acpi_numa_init(void)
> -{
> - int ret;
> -
> - ret = acpi_numa_init();
> - if (ret) {
> - pr_info("Failed to initialise from firmware\n");
> - return ret;
> - }
> -
> - return srat_disabled() ? -EINVAL : 0;
> -}
> diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
> index 481d22c32a2e..93b660229e1d 100644
> --- a/arch/arm64/mm/init.c
> +++ b/arch/arm64/mm/init.c
> @@ -418,10 +418,10 @@ void __init bootmem_init(void)
> max_pfn = max_low_pfn = max;
> min_low_pfn = min;
>
> - arm64_numa_init();
> + arch_numa_init();
>
> /*
> - * must be done after arm64_numa_init() which calls numa_init() to
> + * must be done after arch_numa_init() which calls numa_init() to
> * initialize node_online_map that gets used in hugetlb_cma_reserve()
> * while allocating required CMA size across online nodes.
> */
> diff --git a/drivers/base/arch_numa.c b/drivers/base/arch_numa.c
> index 73f8b49d485c..a4039dcabd3e 100644
> --- a/drivers/base/arch_numa.c
> +++ b/drivers/base/arch_numa.c
> @@ -13,7 +13,9 @@
> #include <linux/module.h>
> #include <linux/of.h>
>
> +#ifdef CONFIG_ACPI_NUMA
> #include <asm/acpi.h>
> +#endif
Could include linux/acpi.h which I think gets you everything you need in here
and has protections against building for non ACPI cases.
> #include <asm/sections.h>
>
> struct pglist_data *node_data[MAX_NUMNODES] __read_mostly;
> @@ -444,16 +446,37 @@ static int __init dummy_numa_init(void)
> return 0;
> }
>
> +#ifdef CONFIG_ACPI_NUMA
> +int __init arch_acpi_numa_init(void)
> +{
> + int ret;
> +
> + ret = acpi_numa_init();
I wonder if this is the correct level at which to stub this out
as opposed to providing a stub for acpi_numa_init()
and srat_disabled()
At this stage I'm not sure I care too strongly though.
> + if (ret) {
> + pr_info("Failed to initialise from firmware\n");
> + return ret;
> + }
> +
> + return srat_disabled() ? -EINVAL : 0;
> +}
> +#else
> +int __init arch_acpi_numa_init(void)
> +{
> + return -EOPNOTSUPP;
> +}
> +
> +#endif
> +
> /**
> - * arm64_numa_init() - Initialize NUMA
> + * arch_numa_init() - Initialize NUMA
> *
> * Try each configured NUMA initialization method until one succeeds. The
> * last fallback is dummy single node config encomapssing whole memory.
> */
> -void __init arm64_numa_init(void)
> +void __init arch_numa_init(void)
> {
> if (!numa_off) {
> - if (!acpi_disabled && !numa_init(arm64_acpi_numa_init))
> + if (!acpi_disabled && !numa_init(arch_acpi_numa_init))
> return;
> if (acpi_disabled && !numa_init(of_numa_init))
> return;
> diff --git a/include/asm-generic/numa.h b/include/asm-generic/numa.h
> index 2718d5a6ff03..e7962db4ba44 100644
> --- a/include/asm-generic/numa.h
> +++ b/include/asm-generic/numa.h
> @@ -27,7 +27,7 @@ static inline const struct cpumask *cpumask_of_node(int node)
> }
> #endif
>
> -void __init arm64_numa_init(void);
> +void __init arch_numa_init(void);
> int __init numa_add_memblk(int nodeid, u64 start, u64 end);
> void __init numa_set_distance(int from, int to, int distance);
> void __init numa_free_distance(void);
> @@ -41,7 +41,7 @@ void numa_remove_cpu(unsigned int cpu);
> static inline void numa_store_cpu_info(unsigned int cpu) { }
> static inline void numa_add_cpu(unsigned int cpu) { }
> static inline void numa_remove_cpu(unsigned int cpu) { }
> -static inline void arm64_numa_init(void) { }
> +static inline void arch_numa_init(void) { }
> static inline void early_map_cpu_to_node(unsigned int cpu, int nid) { }
>
> #endif /* CONFIG_NUMA */
WARNING: multiple messages have this Message-ID (diff)
From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Atish Patra <atish.patra@wdc.com>
Cc: David Hildenbrand <david@redhat.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Zong Li <zong.li@sifive.com>,
linux-riscv@lists.infradead.org, Will Deacon <will@kernel.org>,
linux-arch@vger.kernel.org, Jia He <justin.he@arm.com>,
Anup Patel <anup@brainfault.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Steven Price <steven.price@arm.com>,
Bjorn Helgaas <helgaas@kernel.org>,
Greentime Hu <greentime.hu@sifive.com>,
Albert Ou <aou@eecs.berkeley.edu>, Arnd Bergmann <arnd@arndb.de>,
Anshuman Khandual <anshuman.khandual@arm.com>,
Paul Walmsley <paul.walmsley@sifive.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-kernel@vger.kernel.org, Palmer Dabbelt <palmer@dabbelt.com>,
Mike Rapoport <rppt@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Subject: Re: [RFC/RFT PATCH v2 2/5] arm64, numa: Change the numa init function name to be generic
Date: Mon, 14 Sep 2020 15:30:48 +0100 [thread overview]
Message-ID: <20200914153048.000038ed@Huawei.com> (raw)
In-Reply-To: <20200912013441.9730-3-atish.patra@wdc.com>
On Fri, 11 Sep 2020 18:34:38 -0700
Atish Patra <atish.patra@wdc.com> wrote:
> As we are using generic numa implementation code, modify the init function
> name to indicate that generic implementation.
>
> Signed-off-by: Atish Patra <atish.patra@wdc.com>
A few comments inline but more about which layer we do the build protections
at than anything important.
Thanks,
Jonathan
> ---
> arch/arm64/kernel/acpi_numa.c | 13 -------------
> arch/arm64/mm/init.c | 4 ++--
> drivers/base/arch_numa.c | 29 ++++++++++++++++++++++++++---
> include/asm-generic/numa.h | 4 ++--
> 4 files changed, 30 insertions(+), 20 deletions(-)
>
> diff --git a/arch/arm64/kernel/acpi_numa.c b/arch/arm64/kernel/acpi_numa.c
> index 7ff800045434..96502ff92af5 100644
> --- a/arch/arm64/kernel/acpi_numa.c
> +++ b/arch/arm64/kernel/acpi_numa.c
> @@ -117,16 +117,3 @@ void __init acpi_numa_gicc_affinity_init(struct acpi_srat_gicc_affinity *pa)
>
> node_set(node, numa_nodes_parsed);
> }
> -
> -int __init arm64_acpi_numa_init(void)
> -{
> - int ret;
> -
> - ret = acpi_numa_init();
> - if (ret) {
> - pr_info("Failed to initialise from firmware\n");
> - return ret;
> - }
> -
> - return srat_disabled() ? -EINVAL : 0;
> -}
> diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
> index 481d22c32a2e..93b660229e1d 100644
> --- a/arch/arm64/mm/init.c
> +++ b/arch/arm64/mm/init.c
> @@ -418,10 +418,10 @@ void __init bootmem_init(void)
> max_pfn = max_low_pfn = max;
> min_low_pfn = min;
>
> - arm64_numa_init();
> + arch_numa_init();
>
> /*
> - * must be done after arm64_numa_init() which calls numa_init() to
> + * must be done after arch_numa_init() which calls numa_init() to
> * initialize node_online_map that gets used in hugetlb_cma_reserve()
> * while allocating required CMA size across online nodes.
> */
> diff --git a/drivers/base/arch_numa.c b/drivers/base/arch_numa.c
> index 73f8b49d485c..a4039dcabd3e 100644
> --- a/drivers/base/arch_numa.c
> +++ b/drivers/base/arch_numa.c
> @@ -13,7 +13,9 @@
> #include <linux/module.h>
> #include <linux/of.h>
>
> +#ifdef CONFIG_ACPI_NUMA
> #include <asm/acpi.h>
> +#endif
Could include linux/acpi.h which I think gets you everything you need in here
and has protections against building for non ACPI cases.
> #include <asm/sections.h>
>
> struct pglist_data *node_data[MAX_NUMNODES] __read_mostly;
> @@ -444,16 +446,37 @@ static int __init dummy_numa_init(void)
> return 0;
> }
>
> +#ifdef CONFIG_ACPI_NUMA
> +int __init arch_acpi_numa_init(void)
> +{
> + int ret;
> +
> + ret = acpi_numa_init();
I wonder if this is the correct level at which to stub this out
as opposed to providing a stub for acpi_numa_init()
and srat_disabled()
At this stage I'm not sure I care too strongly though.
> + if (ret) {
> + pr_info("Failed to initialise from firmware\n");
> + return ret;
> + }
> +
> + return srat_disabled() ? -EINVAL : 0;
> +}
> +#else
> +int __init arch_acpi_numa_init(void)
> +{
> + return -EOPNOTSUPP;
> +}
> +
> +#endif
> +
> /**
> - * arm64_numa_init() - Initialize NUMA
> + * arch_numa_init() - Initialize NUMA
> *
> * Try each configured NUMA initialization method until one succeeds. The
> * last fallback is dummy single node config encomapssing whole memory.
> */
> -void __init arm64_numa_init(void)
> +void __init arch_numa_init(void)
> {
> if (!numa_off) {
> - if (!acpi_disabled && !numa_init(arm64_acpi_numa_init))
> + if (!acpi_disabled && !numa_init(arch_acpi_numa_init))
> return;
> if (acpi_disabled && !numa_init(of_numa_init))
> return;
> diff --git a/include/asm-generic/numa.h b/include/asm-generic/numa.h
> index 2718d5a6ff03..e7962db4ba44 100644
> --- a/include/asm-generic/numa.h
> +++ b/include/asm-generic/numa.h
> @@ -27,7 +27,7 @@ static inline const struct cpumask *cpumask_of_node(int node)
> }
> #endif
>
> -void __init arm64_numa_init(void);
> +void __init arch_numa_init(void);
> int __init numa_add_memblk(int nodeid, u64 start, u64 end);
> void __init numa_set_distance(int from, int to, int distance);
> void __init numa_free_distance(void);
> @@ -41,7 +41,7 @@ void numa_remove_cpu(unsigned int cpu);
> static inline void numa_store_cpu_info(unsigned int cpu) { }
> static inline void numa_add_cpu(unsigned int cpu) { }
> static inline void numa_remove_cpu(unsigned int cpu) { }
> -static inline void arm64_numa_init(void) { }
> +static inline void arch_numa_init(void) { }
> static inline void early_map_cpu_to_node(unsigned int cpu, int nid) { }
>
> #endif /* CONFIG_NUMA */
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2020-09-14 14:34 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-12 1:34 [RFC/RFT PATCH v2 0/5] Unify NUMA implementation between ARM64 & RISC-V Atish Patra
2020-09-12 1:34 ` Atish Patra
2020-09-12 1:34 ` [RFC/RFT PATCH v2 1/5] numa: Move numa implementation to common code Atish Patra
2020-09-12 1:34 ` Atish Patra
2020-09-14 14:21 ` Jonathan Cameron
2020-09-14 14:21 ` Jonathan Cameron
2020-09-12 1:34 ` [RFC/RFT PATCH v2 2/5] arm64, numa: Change the numa init function name to be generic Atish Patra
2020-09-12 1:34 ` Atish Patra
2020-09-14 14:30 ` Jonathan Cameron [this message]
2020-09-14 14:30 ` Jonathan Cameron
2020-09-14 19:32 ` Atish Patra
2020-09-14 19:32 ` Atish Patra
2020-09-15 8:27 ` Jonathan Cameron
2020-09-15 8:27 ` Jonathan Cameron
2020-09-15 4:11 ` kernel test robot
2020-09-12 1:34 ` [RFC/RFT PATCH v2 3/5] riscv: Separate memory init from paging init Atish Patra
2020-09-12 1:34 ` Atish Patra
2020-09-12 2:10 ` Greentime Hu
2020-09-12 2:10 ` Greentime Hu
2020-09-12 1:34 ` [RFC/RFT PATCH v2 4/5] riscv: Add support pte_protnone and pmd_protnone if CONFIG_NUMA_BALANCING Atish Patra
2020-09-12 1:34 ` Atish Patra
2020-09-12 1:34 ` [RFC/RFT PATCH v2 5/5] riscv: Add numa support for riscv64 platform Atish Patra
2020-09-12 1:34 ` Atish Patra
2020-09-16 22:19 ` kernel test robot
2020-09-14 8:04 ` [RFC/RFT PATCH v2 0/5] Unify NUMA implementation between ARM64 & RISC-V Jonathan Cameron
2020-09-14 8:04 ` Jonathan Cameron
2020-09-14 19:33 ` Atish Patra
2020-09-14 19:33 ` Atish Patra
2020-09-18 16:05 ` Jonathan Cameron
2020-09-18 16:05 ` Jonathan Cameron
2020-09-18 19:18 ` Atish Patra
2020-09-18 19:18 ` Atish Patra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200914153048.000038ed@Huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=akpm@linux-foundation.org \
--cc=anshuman.khandual@arm.com \
--cc=anup@brainfault.org \
--cc=aou@eecs.berkeley.edu \
--cc=arnd@arndb.de \
--cc=atish.patra@wdc.com \
--cc=catalin.marinas@arm.com \
--cc=david@redhat.com \
--cc=greentime.hu@sifive.com \
--cc=gregkh@linuxfoundation.org \
--cc=helgaas@kernel.org \
--cc=justin.he@arm.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=nsaenzjulienne@suse.de \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=rafael@kernel.org \
--cc=rppt@kernel.org \
--cc=steven.price@arm.com \
--cc=will@kernel.org \
--cc=zong.li@sifive.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.