Thread (20 messages) 20 messages, 5 authors, 2020-11-07

Re: [PATCH v4 2/5] arm64, numa: Change the numa init functions name to be generic

From: Atish Patra <hidden>
Date: 2020-11-06 17:33:29
Also in: linux-arch, linux-riscv, lkml

On Fri, Nov 6, 2020 at 9:14 AM Catalin Marinas [off-list ref] wrote:
On Mon, Oct 05, 2020 at 05:17:49PM -0700, Atish Patra wrote:
quoted
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;
-}
I think it's better if arm64_acpi_numa_init() and arm64_numa_init()
remained in the arm64 code. It's not really much code to be shared.
RISC-V will probably support ACPI one day. The idea is to not to do
exercise again in future.
Moreover, there will be arch_numa_init which will be used by RISC-V
and there will be arm64_numa_init
used by arm64. However, if you feel strongly about it, I am happy to
move back those two functions to arm64.

In case, we decide to go that route, can we define arm64_numa_init in
mm/init.c ?
Defining numa.c just for arm64_numa_init in arm64 may be an overkill.
quoted
diff --git a/drivers/base/arch_numa.c b/drivers/base/arch_numa.c
index 73f8b49d485c..74b4f2ddad70 100644
--- a/drivers/base/arch_numa.c
+++ b/drivers/base/arch_numa.c
@@ -13,7 +13,6 @@
 #include <linux/module.h>
 #include <linux/of.h>

-#include <asm/acpi.h>
 #include <asm/sections.h>

 struct pglist_data *node_data[MAX_NUMNODES] __read_mostly;
@@ -444,16 +443,37 @@ static int __init dummy_numa_init(void)
      return 0;
 }

+#ifdef CONFIG_ACPI_NUMA
+static int __init arch_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;
+}
+#else
+static 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.
+ * last fallback is dummy single node config encompassing 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;
Does riscv even have an acpi_disabled variable?
It is defined in "include/linux/acpi.h" which is included in arch_numa.c
--
Catalin

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv


-- 
Regards,
Atish

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help