linux-sh.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/6] Fix and enable pmem as RAM device on arm64
@ 2020-07-09  2:06 Jia He
  2020-07-09  2:06 ` [PATCH v3 1/6] mm/memory_hotplug: introduce default dummy memory_add_physaddr_to_nid() Jia He
                   ` (6 more replies)
  0 siblings, 7 replies; 21+ messages in thread
From: Jia He @ 2020-07-09  2:06 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Tony Luck, Fenghua Yu,
	Yoshinori Sato, Rich Felker, Dave Hansen, Andy Lutomirski,
	Peter Zijlstra, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
	David Hildenbrand
  Cc: Kaly Xin, Michal Hocko, Dave Jiang, Baoquan He, linux-sh,
	Vishal Verma, Masahiro Yamada, x86, Chuhong Yuan, linux-kernel,
	Mike Rapoport, linux-mm, linux-nvdimm, Jonathan Cameron,
	H. Peter Anvin, linux-ia64, Dan Williams, Logan Gunthorpe,
	Andrew Morton, linux-arm-kernel, Jia He

This fixies a few issues when I tried to enable pmem as RAM device on arm64.

To use memory_add_physaddr_to_nid as a fallback nid, it would be better
implement a general version (__weak) in mm/memory_hotplug. After that, arm64/
sh/s390 can simply use the general version, and PowerPC/ia64/x86 will use
arch specific version.

Tested on ThunderX2 host/qemu "-M virt" guest with a nvdimm device. The 
memblocks from the dax pmem device can be either hot-added or hot-removed
on arm64 guest. Also passed the compilation test on x86.

Changes:
v3: - introduce general version memory_add_physaddr_to_nid, refine the arch
      specific one
    - fix an uninitialization bug in v2 device-dax patch
v2: https://lkml.org/lkml/2020/7/7/71
    - Drop unnecessary patch to harden try_offline_node
    - Use new solution(by David) to fix dev->target_node=-1 during probing
    - Refine the mem_hotplug_begin/done patch

v1: https://lkml.org/lkml/2020/7/5/381


Jia He (6):
  mm/memory_hotplug: introduce default dummy
    memory_add_physaddr_to_nid()
  arm64/mm: use default dummy memory_add_physaddr_to_nid()
  sh/mm: use default dummy memory_add_physaddr_to_nid()
  mm: don't export memory_add_physaddr_to_nid in arch specific directory
  device-dax: use fallback nid when numa_node is invalid
  mm/memory_hotplug: fix unpaired mem_hotplug_begin/done

 arch/arm64/mm/numa.c | 10 ----------
 arch/ia64/mm/numa.c  |  2 --
 arch/sh/mm/init.c    |  9 ---------
 arch/x86/mm/numa.c   |  1 -
 drivers/dax/kmem.c   | 21 +++++++++++++--------
 mm/memory_hotplug.c  | 15 ++++++++++++---
 6 files changed, 25 insertions(+), 33 deletions(-)

-- 
2.17.1

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH v3 1/6] mm/memory_hotplug: introduce default dummy memory_add_physaddr_to_nid()
  2020-07-09  2:06 [PATCH v3 0/6] Fix and enable pmem as RAM device on arm64 Jia He
@ 2020-07-09  2:06 ` Jia He
  2020-07-09  9:10   ` David Hildenbrand
  2020-07-09  2:06 ` [PATCH v3 2/6] arm64/mm: use " Jia He
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 21+ messages in thread
From: Jia He @ 2020-07-09  2:06 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Tony Luck, Fenghua Yu,
	Yoshinori Sato, Rich Felker, Dave Hansen, Andy Lutomirski,
	Peter Zijlstra, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
	David Hildenbrand
  Cc: Kaly Xin, Michal Hocko, Dave Jiang, Baoquan He, linux-sh,
	Vishal Verma, Masahiro Yamada, x86, Chuhong Yuan, linux-kernel,
	Mike Rapoport, linux-mm, linux-nvdimm, Jonathan Cameron,
	H. Peter Anvin, linux-ia64, Dan Williams, Logan Gunthorpe,
	Andrew Morton, linux-arm-kernel, Jia He

This is to introduce a general dummy helper. memory_add_physaddr_to_nid()
is a fallback option to get the nid in case NUMA_NO_NID is detected.

After this patch, arm64/sh/s390 can simply use the general dummy version.
PowerPC/x86/ia64 will still use their specific version.

Signed-off-by: Jia He <justin.he@arm.com>
---
 mm/memory_hotplug.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index da374cd3d45b..b49ab743d914 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -350,6 +350,16 @@ int __ref __add_pages(int nid, unsigned long pfn, unsigned long nr_pages,
 	return err;
 }
 
+#ifdef CONFIG_NUMA
+int __weak memory_add_physaddr_to_nid(u64 start)
+{
+	pr_info_once("Unknown target node for memory at 0x%llx, assuming node 0\n",
+			start);
+	return 0;
+}
+EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);
+#endif
+
 /* find the smallest valid pfn in the range [start_pfn, end_pfn) */
 static unsigned long find_smallest_section_pfn(int nid, struct zone *zone,
 				     unsigned long start_pfn,
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH v3 2/6] arm64/mm: use default dummy memory_add_physaddr_to_nid()
  2020-07-09  2:06 [PATCH v3 0/6] Fix and enable pmem as RAM device on arm64 Jia He
  2020-07-09  2:06 ` [PATCH v3 1/6] mm/memory_hotplug: introduce default dummy memory_add_physaddr_to_nid() Jia He
@ 2020-07-09  2:06 ` Jia He
  2020-07-09  9:10   ` David Hildenbrand
  2020-07-09  2:06 ` [PATCH v3 3/6] sh/mm: " Jia He
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 21+ messages in thread
From: Jia He @ 2020-07-09  2:06 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Tony Luck, Fenghua Yu,
	Yoshinori Sato, Rich Felker, Dave Hansen, Andy Lutomirski,
	Peter Zijlstra, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
	David Hildenbrand
  Cc: Kaly Xin, Michal Hocko, Dave Jiang, Baoquan He, linux-sh,
	Vishal Verma, Masahiro Yamada, x86, Chuhong Yuan, linux-kernel,
	Mike Rapoport, linux-mm, linux-nvdimm, Jonathan Cameron,
	H. Peter Anvin, linux-ia64, Dan Williams, Logan Gunthorpe,
	Andrew Morton, linux-arm-kernel, Jia He

After making default memory_add_physaddr_to_nid() in mm/memory_hotplug,
it is no use defining a similar one in arch specific directory.

Signed-off-by: Jia He <justin.he@arm.com>
---
 arch/arm64/mm/numa.c | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/arch/arm64/mm/numa.c b/arch/arm64/mm/numa.c
index aafcee3e3f7e..73f8b49d485c 100644
--- a/arch/arm64/mm/numa.c
+++ b/arch/arm64/mm/numa.c
@@ -461,13 +461,3 @@ void __init arm64_numa_init(void)
 
 	numa_init(dummy_numa_init);
 }
-
-/*
- * We hope that we will be hotplugging memory on nodes we already know about,
- * such that acpi_get_node() succeeds and we never fall back to this...
- */
-int memory_add_physaddr_to_nid(u64 addr)
-{
-	pr_warn("Unknown node for memory at 0x%llx, assuming node 0\n", addr);
-	return 0;
-}
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH v3 3/6] sh/mm: use default dummy memory_add_physaddr_to_nid()
  2020-07-09  2:06 [PATCH v3 0/6] Fix and enable pmem as RAM device on arm64 Jia He
  2020-07-09  2:06 ` [PATCH v3 1/6] mm/memory_hotplug: introduce default dummy memory_add_physaddr_to_nid() Jia He
  2020-07-09  2:06 ` [PATCH v3 2/6] arm64/mm: use " Jia He
@ 2020-07-09  2:06 ` Jia He
  2020-07-09  9:10   ` David Hildenbrand
  2020-07-21  3:23   ` Pankaj Gupta
  2020-07-09  2:06 ` [PATCH v3 4/6] mm: don't export memory_add_physaddr_to_nid in arch specific directory Jia He
                   ` (3 subsequent siblings)
  6 siblings, 2 replies; 21+ messages in thread
From: Jia He @ 2020-07-09  2:06 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Tony Luck, Fenghua Yu,
	Yoshinori Sato, Rich Felker, Dave Hansen, Andy Lutomirski,
	Peter Zijlstra, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
	David Hildenbrand
  Cc: Kaly Xin, Michal Hocko, Dave Jiang, Baoquan He, linux-sh,
	Vishal Verma, Masahiro Yamada, x86, Chuhong Yuan, linux-kernel,
	Mike Rapoport, linux-mm, linux-nvdimm, Jonathan Cameron,
	H. Peter Anvin, linux-ia64, Dan Williams, Logan Gunthorpe,
	Andrew Morton, linux-arm-kernel, Jia He

After making default memory_add_physaddr_to_nid in mm/memory_hotplug,
there is no use to define a similar one in arch specific directory.

Signed-off-by: Jia He <justin.he@arm.com>
---
 arch/sh/mm/init.c | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c
index a70ba0fdd0b3..f75932ba87a6 100644
--- a/arch/sh/mm/init.c
+++ b/arch/sh/mm/init.c
@@ -430,15 +430,6 @@ int arch_add_memory(int nid, u64 start, u64 size,
 	return ret;
 }
 
-#ifdef CONFIG_NUMA
-int memory_add_physaddr_to_nid(u64 addr)
-{
-	/* Node 0 for now.. */
-	return 0;
-}
-EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);
-#endif
-
 void arch_remove_memory(int nid, u64 start, u64 size,
 			struct vmem_altmap *altmap)
 {
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH v3 4/6] mm: don't export memory_add_physaddr_to_nid in arch specific directory
  2020-07-09  2:06 [PATCH v3 0/6] Fix and enable pmem as RAM device on arm64 Jia He
                   ` (2 preceding siblings ...)
  2020-07-09  2:06 ` [PATCH v3 3/6] sh/mm: " Jia He
@ 2020-07-09  2:06 ` Jia He
  2020-07-09  2:11   ` Matthew Wilcox
  2020-07-09  2:06 ` [PATCH v3 5/6] device-dax: use fallback nid when numa_node is invalid Jia He
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 21+ messages in thread
From: Jia He @ 2020-07-09  2:06 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Tony Luck, Fenghua Yu,
	Yoshinori Sato, Rich Felker, Dave Hansen, Andy Lutomirski,
	Peter Zijlstra, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
	David Hildenbrand
  Cc: Kaly Xin, Michal Hocko, Dave Jiang, Baoquan He, linux-sh,
	Vishal Verma, Masahiro Yamada, x86, Chuhong Yuan, linux-kernel,
	Mike Rapoport, linux-mm, linux-nvdimm, Jonathan Cameron,
	H. Peter Anvin, linux-ia64, Dan Williams, Logan Gunthorpe,
	Andrew Morton, linux-arm-kernel, Jia He

After a general version of __weak memory_add_physaddr_to_nid implemented
and exported , it is no use exporting twice in arch directory even if
e,g, ia64/x86 have their specific version.

This is to suppress the modpost warning:
WARNING: modpost: vmlinux: 'memory_add_physaddr_to_nid' exported twice.
Previous export was in vmlinux

Suggested-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Jia He <justin.he@arm.com>
---
 arch/ia64/mm/numa.c | 2 --
 arch/x86/mm/numa.c  | 1 -
 2 files changed, 3 deletions(-)

diff --git a/arch/ia64/mm/numa.c b/arch/ia64/mm/numa.c
index 5e1015eb6d0d..f34964271101 100644
--- a/arch/ia64/mm/numa.c
+++ b/arch/ia64/mm/numa.c
@@ -106,7 +106,5 @@ int memory_add_physaddr_to_nid(u64 addr)
 		return 0;
 	return nid;
 }
-
-EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);
 #endif
 #endif
diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c
index 8ee952038c80..2a6e62af4636 100644
--- a/arch/x86/mm/numa.c
+++ b/arch/x86/mm/numa.c
@@ -929,5 +929,4 @@ int memory_add_physaddr_to_nid(u64 start)
 		nid = numa_meminfo.blk[0].nid;
 	return nid;
 }
-EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);
 #endif
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH v3 5/6] device-dax: use fallback nid when numa_node is invalid
  2020-07-09  2:06 [PATCH v3 0/6] Fix and enable pmem as RAM device on arm64 Jia He
                   ` (3 preceding siblings ...)
  2020-07-09  2:06 ` [PATCH v3 4/6] mm: don't export memory_add_physaddr_to_nid in arch specific directory Jia He
@ 2020-07-09  2:06 ` Jia He
  2020-07-09  3:38   ` Dan Williams
  2020-07-09  2:06 ` [PATCH v3 6/6] mm/memory_hotplug: fix unpaired mem_hotplug_begin/done Jia He
  2020-07-31 15:28 ` [PATCH v3 0/6] Fix and enable pmem as RAM device on arm64 Dan Williams
  6 siblings, 1 reply; 21+ messages in thread
From: Jia He @ 2020-07-09  2:06 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Tony Luck, Fenghua Yu,
	Yoshinori Sato, Rich Felker, Dave Hansen, Andy Lutomirski,
	Peter Zijlstra, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
	David Hildenbrand
  Cc: Kaly Xin, Michal Hocko, Dave Jiang, Baoquan He, linux-sh,
	Vishal Verma, Masahiro Yamada, x86, Chuhong Yuan, linux-kernel,
	Mike Rapoport, linux-mm, linux-nvdimm, Jonathan Cameron,
	H. Peter Anvin, linux-ia64, Dan Williams, Logan Gunthorpe,
	Andrew Morton, linux-arm-kernel, Jia He

numa_off is set unconditionally at the end of dummy_numa_init(),
even with a fake numa node. ACPI detects node id as NUMA_NO_NODE(-1) in
acpi_map_pxm_to_node() because it regards numa_off as turning off the numa
node. Hence dev_dax->target_node is NUMA_NO_NODE on arm64 with fake numa.

Without this patch, pmem can't be probed as a RAM device on arm64 if SRAT table
isn't present:
$ndctl create-namespace -fe namespace0.0 --modeÞvdax --mapÞv -s 1g -a 64K
kmem dax0.0: rejecting DAX region [mem 0x240400000-0x2bfffffff] with invalid node: -1
kmem: probe of dax0.0 failed with error -22

This fixes it by using fallback memory_add_physaddr_to_nid() as nid.

Suggested-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Jia He <justin.he@arm.com>
---
 drivers/dax/kmem.c | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/drivers/dax/kmem.c b/drivers/dax/kmem.c
index 275aa5f87399..218f66057994 100644
--- a/drivers/dax/kmem.c
+++ b/drivers/dax/kmem.c
@@ -31,22 +31,23 @@ int dev_dax_kmem_probe(struct device *dev)
 	int numa_node;
 	int rc;
 
+	/* Hotplug starting at the beginning of the next block: */
+	kmem_start = ALIGN(res->start, memory_block_size_bytes());
+
 	/*
 	 * Ensure good NUMA information for the persistent memory.
 	 * Without this check, there is a risk that slow memory
 	 * could be mixed in a node with faster memory, causing
-	 * unavoidable performance issues.
+	 * unavoidable performance issues. Furthermore, fallback node
+	 * id can be used when numa_node is invalid.
 	 */
 	numa_node = dev_dax->target_node;
 	if (numa_node < 0) {
-		dev_warn(dev, "rejecting DAX region %pR with invalid node: %d\n",
-			 res, numa_node);
-		return -EINVAL;
+		numa_node = memory_add_physaddr_to_nid(kmem_start);
+		dev_info(dev, "using nid %d for DAX region with undefined nid %pR\n",
+			numa_node, res);
 	}
 
-	/* Hotplug starting at the beginning of the next block: */
-	kmem_start = ALIGN(res->start, memory_block_size_bytes());
-
 	kmem_size = resource_size(res);
 	/* Adjust the size down to compensate for moving up kmem_start: */
 	kmem_size -= kmem_start - res->start;
@@ -100,15 +101,19 @@ static int dev_dax_kmem_remove(struct device *dev)
 	resource_size_t kmem_start = res->start;
 	resource_size_t kmem_size = resource_size(res);
 	const char *res_name = res->name;
+	int numa_node = dev_dax->target_node;
 	int rc;
 
+	if (numa_node < 0)
+		numa_node = memory_add_physaddr_to_nid(kmem_start);
+
 	/*
 	 * We have one shot for removing memory, if some memory blocks were not
 	 * offline prior to calling this function remove_memory() will fail, and
 	 * there is no way to hotremove this memory until reboot because device
 	 * unbind will succeed even if we return failure.
 	 */
-	rc = remove_memory(dev_dax->target_node, kmem_start, kmem_size);
+	rc = remove_memory(numa_node, kmem_start, kmem_size);
 	if (rc) {
 		any_hotremove_failed = true;
 		dev_err(dev,
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH v3 6/6] mm/memory_hotplug: fix unpaired mem_hotplug_begin/done
  2020-07-09  2:06 [PATCH v3 0/6] Fix and enable pmem as RAM device on arm64 Jia He
                   ` (4 preceding siblings ...)
  2020-07-09  2:06 ` [PATCH v3 5/6] device-dax: use fallback nid when numa_node is invalid Jia He
@ 2020-07-09  2:06 ` Jia He
  2020-07-09  9:11   ` David Hildenbrand
  2020-07-31 15:28 ` [PATCH v3 0/6] Fix and enable pmem as RAM device on arm64 Dan Williams
  6 siblings, 1 reply; 21+ messages in thread
From: Jia He @ 2020-07-09  2:06 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Tony Luck, Fenghua Yu,
	Yoshinori Sato, Rich Felker, Dave Hansen, Andy Lutomirski,
	Peter Zijlstra, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
	David Hildenbrand
  Cc: Michal Hocko, linux-ia64, linux-sh, linux-mm, H. Peter Anvin,
	Dave Jiang, Baoquan He, linux-nvdimm, Vishal Verma,
	Masahiro Yamada, x86, Mike Rapoport, Kaly Xin, Chuhong Yuan,
	Jonathan Cameron, Jia He, Dan Williams, linux-arm-kernel,
	linux-kernel, stable, Andrew Morton, Logan Gunthorpe

When check_memblock_offlined_cb() returns failed rc(e.g. the memblock is
online at that time), mem_hotplug_begin/done is unpaired in such case.

Therefore a warning:
 Call Trace:
  percpu_up_write+0x33/0x40
  try_remove_memory+0x66/0x120
  ? _cond_resched+0x19/0x30
  remove_memory+0x2b/0x40
  dev_dax_kmem_remove+0x36/0x72 [kmem]
  device_release_driver_internal+0xf0/0x1c0
  device_release_driver+0x12/0x20
  bus_remove_device+0xe1/0x150
  device_del+0x17b/0x3e0
  unregister_dev_dax+0x29/0x60
  devm_action_release+0x15/0x20
  release_nodes+0x19a/0x1e0
  devres_release_all+0x3f/0x50
  device_release_driver_internal+0x100/0x1c0
  driver_detach+0x4c/0x8f
  bus_remove_driver+0x5c/0xd0
  driver_unregister+0x31/0x50
  dax_pmem_exit+0x10/0xfe0 [dax_pmem]

Fixes: f1037ec0cc8a ("mm/memory_hotplug: fix remove_memory() lockdep splat")
Cc: stable@vger.kernel.org # v5.6+
Signed-off-by: Jia He <justin.he@arm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Dan Williams <dan.j.williams@intel.com>
---
 mm/memory_hotplug.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index b49ab743d914..3e0645387daf 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -1752,7 +1752,7 @@ static int __ref try_remove_memory(int nid, u64 start, u64 size)
 	 */
 	rc = walk_memory_blocks(start, size, NULL, check_memblock_offlined_cb);
 	if (rc)
-		goto done;
+		return rc;
 
 	/* remove memmap entry */
 	firmware_map_remove(start, start + size, "System RAM");
@@ -1776,9 +1776,8 @@ static int __ref try_remove_memory(int nid, u64 start, u64 size)
 
 	try_offline_node(nid);
 
-done:
 	mem_hotplug_done();
-	return rc;
+	return 0;
 }
 
 /**
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [PATCH v3 4/6] mm: don't export memory_add_physaddr_to_nid in arch specific directory
  2020-07-09  2:06 ` [PATCH v3 4/6] mm: don't export memory_add_physaddr_to_nid in arch specific directory Jia He
@ 2020-07-09  2:11   ` Matthew Wilcox
  2020-07-09  2:16     ` Justin He
  2020-07-09  9:18     ` Mike Rapoport
  0 siblings, 2 replies; 21+ messages in thread
From: Matthew Wilcox @ 2020-07-09  2:11 UTC (permalink / raw)
  To: Jia He
  Cc: Rich Felker, linux-ia64, David Hildenbrand, Peter Zijlstra,
	Catalin Marinas, Dave Hansen, linux-mm, Michal Hocko,
	H. Peter Anvin, Will Deacon, Thomas Gleixner, Dave Jiang,
	Yoshinori Sato, linux-nvdimm, linux-sh, Vishal Verma,
	Masahiro Yamada, x86, Mike Rapoport, Kaly Xin, Ingo Molnar,
	Fenghua Yu, Chuhong Yuan, Borislav Petkov, Andy Lutomirski,
	Jonathan Cameron, Dan Williams, linux-arm-kernel, Tony Luck,
	Baoquan He, linux-kernel, Andrew Morton, Logan Gunthorpe

On Thu, Jul 09, 2020 at 10:06:27AM +0800, Jia He wrote:
> After a general version of __weak memory_add_physaddr_to_nid implemented
> and exported , it is no use exporting twice in arch directory even if
> e,g, ia64/x86 have their specific version.
> 
> This is to suppress the modpost warning:
> WARNING: modpost: vmlinux: 'memory_add_physaddr_to_nid' exported twice.
> Previous export was in vmlinux

It's bad form to introduce a warning and then send a follow-up patch to
fix the warning.  Just fold this patch into patch 1/6.

^ permalink raw reply	[flat|nested] 21+ messages in thread

* RE: [PATCH v3 4/6] mm: don't export memory_add_physaddr_to_nid in arch specific directory
  2020-07-09  2:11   ` Matthew Wilcox
@ 2020-07-09  2:16     ` Justin He
  2020-07-09  9:18     ` Mike Rapoport
  1 sibling, 0 replies; 21+ messages in thread
From: Justin He @ 2020-07-09  2:16 UTC (permalink / raw)
  To: Matthew Wilcox
  Cc: Rich Felker, linux-ia64, David Hildenbrand, Peter Zijlstra,
	Catalin Marinas, Dave Hansen, linux-mm, Michal Hocko,
	H. Peter Anvin, Will Deacon, Thomas Gleixner, Dave Jiang,
	Yoshinori Sato, linux-nvdimm, linux-sh, Vishal Verma,
	Masahiro Yamada, x86, Mike Rapoport, Kaly Xin, Ingo Molnar,
	Fenghua Yu, Chuhong Yuan, Borislav Petkov, Andy Lutomirski,
	Jonathan Cameron, Dan Williams, linux-arm-kernel, Tony Luck,
	Baoquan He, linux-kernel, Andrew Morton, Logan Gunthorpe

Hi Matthew

> -----Original Message-----
> From: Matthew Wilcox <willy@infradead.org>
> Sent: Thursday, July 9, 2020 10:11 AM
> To: Justin He <Justin.He@arm.com>
> Cc: Catalin Marinas <Catalin.Marinas@arm.com>; Will Deacon
> <will@kernel.org>; Tony Luck <tony.luck@intel.com>; Fenghua Yu
> <fenghua.yu@intel.com>; Yoshinori Sato <ysato@users.sourceforge.jp>; Rich
> Felker <dalias@libc.org>; Dave Hansen <dave.hansen@linux.intel.com>; Andy
> Lutomirski <luto@kernel.org>; Peter Zijlstra <peterz@infradead.org>;
> Thomas Gleixner <tglx@linutronix.de>; Ingo Molnar <mingo@redhat.com>;
> Borislav Petkov <bp@alien8.de>; David Hildenbrand <david@redhat.com>;
> x86@kernel.org; H. Peter Anvin <hpa@zytor.com>; Dan Williams
> <dan.j.williams@intel.com>; Vishal Verma <vishal.l.verma@intel.com>; Dave
> Jiang <dave.jiang@intel.com>; Andrew Morton <akpm@linux-foundation.org>;
> Baoquan He <bhe@redhat.com>; Chuhong Yuan <hslester96@gmail.com>; Mike
> Rapoport <rppt@linux.ibm.com>; Logan Gunthorpe <logang@deltatee.com>;
> Masahiro Yamada <masahiroy@kernel.org>; Michal Hocko <mhocko@suse.com>;
> linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org; linux-
> ia64@vger.kernel.org; linux-sh@vger.kernel.org; linux-nvdimm@lists.01.org;
> linux-mm@kvack.org; Jonathan Cameron <Jonathan.Cameron@huawei.com>; Kaly
> Xin <Kaly.Xin@arm.com>
> Subject: Re: [PATCH v3 4/6] mm: don't export memory_add_physaddr_to_nid in
> arch specific directory
> 
> On Thu, Jul 09, 2020 at 10:06:27AM +0800, Jia He wrote:
> > After a general version of __weak memory_add_physaddr_to_nid implemented
> > and exported , it is no use exporting twice in arch directory even if
> > e,g, ia64/x86 have their specific version.
> >
> > This is to suppress the modpost warning:
> > WARNING: modpost: vmlinux: 'memory_add_physaddr_to_nid' exported twice.
> > Previous export was in vmlinux
> 
> It's bad form to introduce a warning and then send a follow-up patch to
> fix the warning.  Just fold this patch into patch 1/6.
Thanks, will do

Cheers,
Justin He

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v3 5/6] device-dax: use fallback nid when numa_node is invalid
  2020-07-09  2:06 ` [PATCH v3 5/6] device-dax: use fallback nid when numa_node is invalid Jia He
@ 2020-07-09  3:38   ` Dan Williams
  2020-07-09  5:13     ` Justin He
  0 siblings, 1 reply; 21+ messages in thread
From: Dan Williams @ 2020-07-09  3:38 UTC (permalink / raw)
  To: Jia He
  Cc: Rich Felker, linux-ia64, David Hildenbrand, Peter Zijlstra,
	Catalin Marinas, Dave Hansen, Linux MM, Michal Hocko,
	H. Peter Anvin, Will Deacon, Dave Jiang, Yoshinori Sato,
	linux-nvdimm, Linux-sh, Vishal Verma, Masahiro Yamada, X86 ML,
	Mike Rapoport, Kaly Xin, Ingo Molnar, Fenghua Yu, Chuhong Yuan,
	Borislav Petkov, Andy Lutomirski, Jonathan Cameron,
	Thomas Gleixner, Linux ARM, Tony Luck, Baoquan He,
	Linux Kernel Mailing List, Andrew Morton, Logan Gunthorpe

On Wed, Jul 8, 2020 at 7:07 PM Jia He <justin.he@arm.com> wrote:
>
> numa_off is set unconditionally at the end of dummy_numa_init(),
> even with a fake numa node. ACPI detects node id as NUMA_NO_NODE(-1) in
> acpi_map_pxm_to_node() because it regards numa_off as turning off the numa
> node. Hence dev_dax->target_node is NUMA_NO_NODE on arm64 with fake numa.
>
> Without this patch, pmem can't be probed as a RAM device on arm64 if SRAT table
> isn't present:
> $ndctl create-namespace -fe namespace0.0 --modeÞvdax --mapÞv -s 1g -a 64K
> kmem dax0.0: rejecting DAX region [mem 0x240400000-0x2bfffffff] with invalid node: -1
> kmem: probe of dax0.0 failed with error -22
>
> This fixes it by using fallback memory_add_physaddr_to_nid() as nid.
>
> Suggested-by: David Hildenbrand <david@redhat.com>
> Signed-off-by: Jia He <justin.he@arm.com>
> ---
>  drivers/dax/kmem.c | 21 +++++++++++++--------
>  1 file changed, 13 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/dax/kmem.c b/drivers/dax/kmem.c
> index 275aa5f87399..218f66057994 100644
> --- a/drivers/dax/kmem.c
> +++ b/drivers/dax/kmem.c
> @@ -31,22 +31,23 @@ int dev_dax_kmem_probe(struct device *dev)
>         int numa_node;
>         int rc;
>
> +       /* Hotplug starting at the beginning of the next block: */
> +       kmem_start = ALIGN(res->start, memory_block_size_bytes());
> +
>         /*
>          * Ensure good NUMA information for the persistent memory.
>          * Without this check, there is a risk that slow memory
>          * could be mixed in a node with faster memory, causing
> -        * unavoidable performance issues.
> +        * unavoidable performance issues. Furthermore, fallback node
> +        * id can be used when numa_node is invalid.
>          */
>         numa_node = dev_dax->target_node;
>         if (numa_node < 0) {
> -               dev_warn(dev, "rejecting DAX region %pR with invalid node: %d\n",
> -                        res, numa_node);
> -               return -EINVAL;
> +               numa_node = memory_add_physaddr_to_nid(kmem_start);

I think this fixup belongs to the core to set a fallback value for
dev_dax->target_node.

I'm close to having patches to provide a functional
phys_addr_to_target_node() for arm64.

^ permalink raw reply	[flat|nested] 21+ messages in thread

* RE: [PATCH v3 5/6] device-dax: use fallback nid when numa_node is invalid
  2020-07-09  3:38   ` Dan Williams
@ 2020-07-09  5:13     ` Justin He
  0 siblings, 0 replies; 21+ messages in thread
From: Justin He @ 2020-07-09  5:13 UTC (permalink / raw)
  To: Dan Williams
  Cc: Rich Felker, linux-ia64, David Hildenbrand, Peter Zijlstra,
	Catalin Marinas, Dave Hansen, Linux MM, Michal Hocko,
	H. Peter Anvin, Will Deacon, Dave Jiang, Yoshinori Sato,
	linux-nvdimm, Linux-sh, Vishal Verma, Masahiro Yamada, X86 ML,
	Mike Rapoport, Kaly Xin, Ingo Molnar, Fenghua Yu, Chuhong Yuan,
	Borislav Petkov, Andy Lutomirski, Jonathan Cameron,
	Thomas Gleixner, Linux ARM, Tony Luck, Baoquan He,
	Linux Kernel Mailing List, Andrew Morton, Logan Gunthorpe

SGkgRGFuDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRGFuIFdpbGxp
YW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBKdWx5IDks
IDIwMjAgMTE6MzkgQU0NCj4gVG86IEp1c3RpbiBIZSA8SnVzdGluLkhlQGFybS5jb20+DQo+IENj
OiBDYXRhbGluIE1hcmluYXMgPENhdGFsaW4uTWFyaW5hc0Bhcm0uY29tPjsgV2lsbCBEZWFjb24N
Cj4gPHdpbGxAa2VybmVsLm9yZz47IFRvbnkgTHVjayA8dG9ueS5sdWNrQGludGVsLmNvbT47IEZl
bmdodWEgWXUNCj4gPGZlbmdodWEueXVAaW50ZWwuY29tPjsgWW9zaGlub3JpIFNhdG8gPHlzYXRv
QHVzZXJzLnNvdXJjZWZvcmdlLmpwPjsgUmljaA0KPiBGZWxrZXIgPGRhbGlhc0BsaWJjLm9yZz47
IERhdmUgSGFuc2VuIDxkYXZlLmhhbnNlbkBsaW51eC5pbnRlbC5jb20+OyBBbmR5DQo+IEx1dG9t
aXJza2kgPGx1dG9Aa2VybmVsLm9yZz47IFBldGVyIFppamxzdHJhIDxwZXRlcnpAaW5mcmFkZWFk
Lm9yZz47DQo+IFRob21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPjsgSW5nbyBNb2xu
YXIgPG1pbmdvQHJlZGhhdC5jb20+Ow0KPiBCb3Jpc2xhdiBQZXRrb3YgPGJwQGFsaWVuOC5kZT47
IERhdmlkIEhpbGRlbmJyYW5kIDxkYXZpZEByZWRoYXQuY29tPjsgWDg2DQo+IE1MIDx4ODZAa2Vy
bmVsLm9yZz47IEguIFBldGVyIEFudmluIDxocGFAenl0b3IuY29tPjsgVmlzaGFsIFZlcm1hDQo+
IDx2aXNoYWwubC52ZXJtYUBpbnRlbC5jb20+OyBEYXZlIEppYW5nIDxkYXZlLmppYW5nQGludGVs
LmNvbT47IEFuZHJldw0KPiBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+OyBCYW9x
dWFuIEhlIDxiaGVAcmVkaGF0LmNvbT47IENodWhvbmcNCj4gWXVhbiA8aHNsZXN0ZXI5NkBnbWFp
bC5jb20+OyBNaWtlIFJhcG9wb3J0IDxycHB0QGxpbnV4LmlibS5jb20+OyBMb2dhbg0KPiBHdW50
aG9ycGUgPGxvZ2FuZ0BkZWx0YXRlZS5jb20+OyBNYXNhaGlybyBZYW1hZGEgPG1hc2FoaXJveUBr
ZXJuZWwub3JnPjsNCj4gTWljaGFsIEhvY2tvIDxtaG9ja29Ac3VzZS5jb20+OyBMaW51eCBBUk0g
PGxpbnV4LWFybS0NCj4ga2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc+OyBMaW51eCBLZXJuZWwg
TWFpbGluZyBMaXN0IDxsaW51eC0NCj4ga2VybmVsQHZnZXIua2VybmVsLm9yZz47IGxpbnV4LWlh
NjRAdmdlci5rZXJuZWwub3JnOyBMaW51eC1zaCA8bGludXgtDQo+IHNoQHZnZXIua2VybmVsLm9y
Zz47IGxpbnV4LW52ZGltbSA8bGludXgtbnZkaW1tQGxpc3RzLjAxLm9yZz47IExpbnV4IE1NDQo+
IDxsaW51eC1tbUBrdmFjay5vcmc+OyBKb25hdGhhbiBDYW1lcm9uIDxKb25hdGhhbi5DYW1lcm9u
QGh1YXdlaS5jb20+OyBLYWx5DQo+IFhpbiA8S2FseS5YaW5AYXJtLmNvbT4NCj4gU3ViamVjdDog
UmU6IFtQQVRDSCB2MyA1LzZdIGRldmljZS1kYXg6IHVzZSBmYWxsYmFjayBuaWQgd2hlbiBudW1h
X25vZGUgaXMNCj4gaW52YWxpZA0KPiANCj4gT24gV2VkLCBKdWwgOCwgMjAyMCBhdCA3OjA3IFBN
IEppYSBIZSA8anVzdGluLmhlQGFybS5jb20+IHdyb3RlOg0KPiA+DQo+ID4gbnVtYV9vZmYgaXMg
c2V0IHVuY29uZGl0aW9uYWxseSBhdCB0aGUgZW5kIG9mIGR1bW15X251bWFfaW5pdCgpLA0KPiA+
IGV2ZW4gd2l0aCBhIGZha2UgbnVtYSBub2RlLiBBQ1BJIGRldGVjdHMgbm9kZSBpZCBhcyBOVU1B
X05PX05PREUoLTEpIGluDQo+ID4gYWNwaV9tYXBfcHhtX3RvX25vZGUoKSBiZWNhdXNlIGl0IHJl
Z2FyZHMgbnVtYV9vZmYgYXMgdHVybmluZyBvZmYgdGhlDQo+IG51bWENCj4gPiBub2RlLiBIZW5j
ZSBkZXZfZGF4LT50YXJnZXRfbm9kZSBpcyBOVU1BX05PX05PREUgb24gYXJtNjQgd2l0aCBmYWtl
IG51bWEuDQo+ID4NCj4gPiBXaXRob3V0IHRoaXMgcGF0Y2gsIHBtZW0gY2FuJ3QgYmUgcHJvYmVk
IGFzIGEgUkFNIGRldmljZSBvbiBhcm02NCBpZg0KPiBTUkFUIHRhYmxlDQo+ID4gaXNuJ3QgcHJl
c2VudDoNCj4gPiAkbmRjdGwgY3JlYXRlLW5hbWVzcGFjZSAtZmUgbmFtZXNwYWNlMC4wIC0tbW9k
ZT1kZXZkYXggLS1tYXA9ZGV2IC1zIDFnIC0NCj4gYSA2NEsNCj4gPiBrbWVtIGRheDAuMDogcmVq
ZWN0aW5nIERBWCByZWdpb24gW21lbSAweDI0MDQwMDAwMC0weDJiZmZmZmZmZl0gd2l0aA0KPiBp
bnZhbGlkIG5vZGU6IC0xDQo+ID4ga21lbTogcHJvYmUgb2YgZGF4MC4wIGZhaWxlZCB3aXRoIGVy
cm9yIC0yMg0KPiA+DQo+ID4gVGhpcyBmaXhlcyBpdCBieSB1c2luZyBmYWxsYmFjayBtZW1vcnlf
YWRkX3BoeXNhZGRyX3RvX25pZCgpIGFzIG5pZC4NCj4gPg0KPiA+IFN1Z2dlc3RlZC1ieTogRGF2
aWQgSGlsZGVuYnJhbmQgPGRhdmlkQHJlZGhhdC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogSmlh
IEhlIDxqdXN0aW4uaGVAYXJtLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9kYXgva21lbS5j
IHwgMjEgKysrKysrKysrKysrKy0tLS0tLS0tDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNl
cnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv
ZGF4L2ttZW0uYyBiL2RyaXZlcnMvZGF4L2ttZW0uYw0KPiA+IGluZGV4IDI3NWFhNWY4NzM5OS4u
MjE4ZjY2MDU3OTk0IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZGF4L2ttZW0uYw0KPiA+ICsr
KyBiL2RyaXZlcnMvZGF4L2ttZW0uYw0KPiA+IEBAIC0zMSwyMiArMzEsMjMgQEAgaW50IGRldl9k
YXhfa21lbV9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ID4gICAgICAgICBpbnQgbnVtYV9u
b2RlOw0KPiA+ICAgICAgICAgaW50IHJjOw0KPiA+DQo+ID4gKyAgICAgICAvKiBIb3RwbHVnIHN0
YXJ0aW5nIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgYmxvY2s6ICovDQo+ID4gKyAgICAg
ICBrbWVtX3N0YXJ0ID0gQUxJR04ocmVzLT5zdGFydCwgbWVtb3J5X2Jsb2NrX3NpemVfYnl0ZXMo
KSk7DQo+ID4gKw0KPiA+ICAgICAgICAgLyoNCj4gPiAgICAgICAgICAqIEVuc3VyZSBnb29kIE5V
TUEgaW5mb3JtYXRpb24gZm9yIHRoZSBwZXJzaXN0ZW50IG1lbW9yeS4NCj4gPiAgICAgICAgICAq
IFdpdGhvdXQgdGhpcyBjaGVjaywgdGhlcmUgaXMgYSByaXNrIHRoYXQgc2xvdyBtZW1vcnkNCj4g
PiAgICAgICAgICAqIGNvdWxkIGJlIG1peGVkIGluIGEgbm9kZSB3aXRoIGZhc3RlciBtZW1vcnks
IGNhdXNpbmcNCj4gPiAtICAgICAgICAqIHVuYXZvaWRhYmxlIHBlcmZvcm1hbmNlIGlzc3Vlcy4N
Cj4gPiArICAgICAgICAqIHVuYXZvaWRhYmxlIHBlcmZvcm1hbmNlIGlzc3Vlcy4gRnVydGhlcm1v
cmUsIGZhbGxiYWNrIG5vZGUNCj4gPiArICAgICAgICAqIGlkIGNhbiBiZSB1c2VkIHdoZW4gbnVt
YV9ub2RlIGlzIGludmFsaWQuDQo+ID4gICAgICAgICAgKi8NCj4gPiAgICAgICAgIG51bWFfbm9k
ZSA9IGRldl9kYXgtPnRhcmdldF9ub2RlOw0KPiA+ICAgICAgICAgaWYgKG51bWFfbm9kZSA8IDAp
IHsNCj4gPiAtICAgICAgICAgICAgICAgZGV2X3dhcm4oZGV2LCAicmVqZWN0aW5nIERBWCByZWdp
b24gJXBSIHdpdGggaW52YWxpZA0KPiBub2RlOiAlZFxuIiwNCj4gPiAtICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzLCBudW1hX25vZGUpOw0KPiA+IC0gICAgICAgICAgICAgICByZXR1cm4gLUVJ
TlZBTDsNCj4gPiArICAgICAgICAgICAgICAgbnVtYV9ub2RlID0gbWVtb3J5X2FkZF9waHlzYWRk
cl90b19uaWQoa21lbV9zdGFydCk7DQo+IA0KPiBJIHRoaW5rIHRoaXMgZml4dXAgYmVsb25ncyB0
byB0aGUgY29yZSB0byBzZXQgYSBmYWxsYmFjayB2YWx1ZSBmb3INCj4gZGV2X2RheC0+dGFyZ2V0
X25vZGUuDQo+IA0KPiBJJ20gY2xvc2UgdG8gaGF2aW5nIHBhdGNoZXMgdG8gcHJvdmlkZSBhIGZ1
bmN0aW9uYWwNCj4gcGh5c19hZGRyX3RvX3RhcmdldF9ub2RlKCkgZm9yIGFybTY0Lg0KDQpTaG91
bGQgTXkgdGhpcyBwYXRjaCg1LzYpIHdhaXQgb24geW91ciBuZXcgcGh5c19hZGRyX3RvX3Rhcmdl
dF9ub2RlKCkgcGF0Y2g/DQpUaGFua3MgZm9yIHRoZSBjbGFyaWZpY2F0aW9uLg0KDQotLQ0KQ2hl
ZXJzLA0KSnVzdGluIChKaWEgSGUpDQoNCg0K

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v3 1/6] mm/memory_hotplug: introduce default dummy memory_add_physaddr_to_nid()
  2020-07-09  2:06 ` [PATCH v3 1/6] mm/memory_hotplug: introduce default dummy memory_add_physaddr_to_nid() Jia He
@ 2020-07-09  9:10   ` David Hildenbrand
  0 siblings, 0 replies; 21+ messages in thread
From: David Hildenbrand @ 2020-07-09  9:10 UTC (permalink / raw)
  To: Jia He, Catalin Marinas, Will Deacon, Tony Luck, Fenghua Yu,
	Yoshinori Sato, Rich Felker, Dave Hansen, Andy Lutomirski,
	Peter Zijlstra, Thomas Gleixner, Ingo Molnar, Borislav Petkov
  Cc: Kaly Xin, Michal Hocko, Dave Jiang, Baoquan He, linux-sh,
	Vishal Verma, Masahiro Yamada, x86, Chuhong Yuan, linux-kernel,
	Mike Rapoport, linux-mm, linux-nvdimm, Jonathan Cameron,
	H. Peter Anvin, linux-ia64, Dan Williams, Logan Gunthorpe,
	Andrew Morton, linux-arm-kernel

On 09.07.20 04:06, Jia He wrote:
> This is to introduce a general dummy helper. memory_add_physaddr_to_nid()
> is a fallback option to get the nid in case NUMA_NO_NID is detected.
> 
> After this patch, arm64/sh/s390 can simply use the general dummy version.
> PowerPC/x86/ia64 will still use their specific version.
> 
> Signed-off-by: Jia He <justin.he@arm.com>
> ---
>  mm/memory_hotplug.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> index da374cd3d45b..b49ab743d914 100644
> --- a/mm/memory_hotplug.c
> +++ b/mm/memory_hotplug.c
> @@ -350,6 +350,16 @@ int __ref __add_pages(int nid, unsigned long pfn, unsigned long nr_pages,
>  	return err;
>  }
>  
> +#ifdef CONFIG_NUMA
> +int __weak memory_add_physaddr_to_nid(u64 start)
> +{
> +	pr_info_once("Unknown target node for memory at 0x%llx, assuming node 0\n",
> +			start);
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);
> +#endif
> +
>  /* find the smallest valid pfn in the range [start_pfn, end_pfn) */
>  static unsigned long find_smallest_section_pfn(int nid, struct zone *zone,
>  				     unsigned long start_pfn,
> 

Reviewed-by: David Hildenbrand <david@redhat.com>

-- 
Thanks,

David / dhildenb

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v3 2/6] arm64/mm: use default dummy memory_add_physaddr_to_nid()
  2020-07-09  2:06 ` [PATCH v3 2/6] arm64/mm: use " Jia He
@ 2020-07-09  9:10   ` David Hildenbrand
  0 siblings, 0 replies; 21+ messages in thread
From: David Hildenbrand @ 2020-07-09  9:10 UTC (permalink / raw)
  To: Jia He, Catalin Marinas, Will Deacon, Tony Luck, Fenghua Yu,
	Yoshinori Sato, Rich Felker, Dave Hansen, Andy Lutomirski,
	Peter Zijlstra, Thomas Gleixner, Ingo Molnar, Borislav Petkov
  Cc: Kaly Xin, Michal Hocko, Dave Jiang, Baoquan He, linux-sh,
	Vishal Verma, Masahiro Yamada, x86, Chuhong Yuan, linux-kernel,
	Mike Rapoport, linux-mm, linux-nvdimm, Jonathan Cameron,
	H. Peter Anvin, linux-ia64, Dan Williams, Logan Gunthorpe,
	Andrew Morton, linux-arm-kernel

On 09.07.20 04:06, Jia He wrote:
> After making default memory_add_physaddr_to_nid() in mm/memory_hotplug,
> it is no use defining a similar one in arch specific directory.
> 
> Signed-off-by: Jia He <justin.he@arm.com>
> ---
>  arch/arm64/mm/numa.c | 10 ----------
>  1 file changed, 10 deletions(-)
> 
> diff --git a/arch/arm64/mm/numa.c b/arch/arm64/mm/numa.c
> index aafcee3e3f7e..73f8b49d485c 100644
> --- a/arch/arm64/mm/numa.c
> +++ b/arch/arm64/mm/numa.c
> @@ -461,13 +461,3 @@ void __init arm64_numa_init(void)
>  
>  	numa_init(dummy_numa_init);
>  }
> -
> -/*
> - * We hope that we will be hotplugging memory on nodes we already know about,
> - * such that acpi_get_node() succeeds and we never fall back to this...
> - */
> -int memory_add_physaddr_to_nid(u64 addr)
> -{
> -	pr_warn("Unknown node for memory at 0x%llx, assuming node 0\n", addr);
> -	return 0;
> -}
> 

Reviewed-by: David Hildenbrand <david@redhat.com>

-- 
Thanks,

David / dhildenb

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v3 3/6] sh/mm: use default dummy memory_add_physaddr_to_nid()
  2020-07-09  2:06 ` [PATCH v3 3/6] sh/mm: " Jia He
@ 2020-07-09  9:10   ` David Hildenbrand
  2020-07-20 21:39     ` Rich Felker
  2020-07-21  3:23   ` Pankaj Gupta
  1 sibling, 1 reply; 21+ messages in thread
From: David Hildenbrand @ 2020-07-09  9:10 UTC (permalink / raw)
  To: Jia He, Catalin Marinas, Will Deacon, Tony Luck, Fenghua Yu,
	Yoshinori Sato, Rich Felker, Dave Hansen, Andy Lutomirski,
	Peter Zijlstra, Thomas Gleixner, Ingo Molnar, Borislav Petkov
  Cc: Kaly Xin, Michal Hocko, Dave Jiang, Baoquan He, linux-sh,
	Vishal Verma, Masahiro Yamada, x86, Chuhong Yuan, linux-kernel,
	Mike Rapoport, linux-mm, linux-nvdimm, Jonathan Cameron,
	H. Peter Anvin, linux-ia64, Dan Williams, Logan Gunthorpe,
	Andrew Morton, linux-arm-kernel

On 09.07.20 04:06, Jia He wrote:
> After making default memory_add_physaddr_to_nid in mm/memory_hotplug,
> there is no use to define a similar one in arch specific directory.
> 
> Signed-off-by: Jia He <justin.he@arm.com>
> ---
>  arch/sh/mm/init.c | 9 ---------
>  1 file changed, 9 deletions(-)
> 
> diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c
> index a70ba0fdd0b3..f75932ba87a6 100644
> --- a/arch/sh/mm/init.c
> +++ b/arch/sh/mm/init.c
> @@ -430,15 +430,6 @@ int arch_add_memory(int nid, u64 start, u64 size,
>  	return ret;
>  }
>  
> -#ifdef CONFIG_NUMA
> -int memory_add_physaddr_to_nid(u64 addr)
> -{
> -	/* Node 0 for now.. */
> -	return 0;
> -}
> -EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);
> -#endif
> -
>  void arch_remove_memory(int nid, u64 start, u64 size,
>  			struct vmem_altmap *altmap)
>  {
> 

Reviewed-by: David Hildenbrand <david@redhat.com>

-- 
Thanks,

David / dhildenb

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v3 6/6] mm/memory_hotplug: fix unpaired mem_hotplug_begin/done
  2020-07-09  2:06 ` [PATCH v3 6/6] mm/memory_hotplug: fix unpaired mem_hotplug_begin/done Jia He
@ 2020-07-09  9:11   ` David Hildenbrand
  0 siblings, 0 replies; 21+ messages in thread
From: David Hildenbrand @ 2020-07-09  9:11 UTC (permalink / raw)
  To: Jia He, Catalin Marinas, Will Deacon, Tony Luck, Fenghua Yu,
	Yoshinori Sato, Rich Felker, Dave Hansen, Andy Lutomirski,
	Peter Zijlstra, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
	Andrew Morton
  Cc: Kaly Xin, Michal Hocko, Dave Jiang, Baoquan He, linux-sh,
	Vishal Verma, Masahiro Yamada, x86, Chuhong Yuan, linux-kernel,
	stable, Mike Rapoport, linux-mm, linux-nvdimm, Jonathan Cameron,
	H. Peter Anvin, linux-ia64, Dan Williams, Logan Gunthorpe,
	linux-arm-kernel

On 09.07.20 04:06, Jia He wrote:
> When check_memblock_offlined_cb() returns failed rc(e.g. the memblock is
> online at that time), mem_hotplug_begin/done is unpaired in such case.
> 
> Therefore a warning:
>  Call Trace:
>   percpu_up_write+0x33/0x40
>   try_remove_memory+0x66/0x120
>   ? _cond_resched+0x19/0x30
>   remove_memory+0x2b/0x40
>   dev_dax_kmem_remove+0x36/0x72 [kmem]
>   device_release_driver_internal+0xf0/0x1c0
>   device_release_driver+0x12/0x20
>   bus_remove_device+0xe1/0x150
>   device_del+0x17b/0x3e0
>   unregister_dev_dax+0x29/0x60
>   devm_action_release+0x15/0x20
>   release_nodes+0x19a/0x1e0
>   devres_release_all+0x3f/0x50
>   device_release_driver_internal+0x100/0x1c0
>   driver_detach+0x4c/0x8f
>   bus_remove_driver+0x5c/0xd0
>   driver_unregister+0x31/0x50
>   dax_pmem_exit+0x10/0xfe0 [dax_pmem]
> 
> Fixes: f1037ec0cc8a ("mm/memory_hotplug: fix remove_memory() lockdep splat")
> Cc: stable@vger.kernel.org # v5.6+
> Signed-off-by: Jia He <justin.he@arm.com>
> Reviewed-by: David Hildenbrand <david@redhat.com>
> Acked-by: Michal Hocko <mhocko@suse.com>
> Acked-by: Dan Williams <dan.j.williams@intel.com>
> ---
>  mm/memory_hotplug.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> index b49ab743d914..3e0645387daf 100644
> --- a/mm/memory_hotplug.c
> +++ b/mm/memory_hotplug.c
> @@ -1752,7 +1752,7 @@ static int __ref try_remove_memory(int nid, u64 start, u64 size)
>  	 */
>  	rc = walk_memory_blocks(start, size, NULL, check_memblock_offlined_cb);
>  	if (rc)
> -		goto done;
> +		return rc;
>  
>  	/* remove memmap entry */
>  	firmware_map_remove(start, start + size, "System RAM");
> @@ -1776,9 +1776,8 @@ static int __ref try_remove_memory(int nid, u64 start, u64 size)
>  
>  	try_offline_node(nid);
>  
> -done:
>  	mem_hotplug_done();
> -	return rc;
> +	return 0;
>  }
>  
>  /**
> 

@Andrew, can you pick that up directly? It's independent of the other stuff.

-- 
Thanks,

David / dhildenb

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v3 4/6] mm: don't export memory_add_physaddr_to_nid in arch specific directory
  2020-07-09  2:11   ` Matthew Wilcox
  2020-07-09  2:16     ` Justin He
@ 2020-07-09  9:18     ` Mike Rapoport
  2020-07-09  9:18       ` David Hildenbrand
  1 sibling, 1 reply; 21+ messages in thread
From: Mike Rapoport @ 2020-07-09  9:18 UTC (permalink / raw)
  To: Matthew Wilcox
  Cc: Rich Felker, linux-ia64, David Hildenbrand, Peter Zijlstra,
	Catalin Marinas, Dave Hansen, linux-mm, Michal Hocko,
	H. Peter Anvin, Will Deacon, Thomas Gleixner, Jia He,
	Yoshinori Sato, linux-nvdimm, linux-sh, Vishal Verma,
	Masahiro Yamada, x86, Kaly Xin, Ingo Molnar, Fenghua Yu,
	Chuhong Yuan, Borislav Petkov, Andy Lutomirski, Jonathan Cameron,
	Dave Jiang, Dan Williams, linux-arm-kernel, Tony Luck,
	Baoquan He, linux-kernel, Andrew Morton, Logan Gunthorpe

On Thu, Jul 09, 2020 at 03:11:04AM +0100, Matthew Wilcox wrote:
> On Thu, Jul 09, 2020 at 10:06:27AM +0800, Jia He wrote:
> > After a general version of __weak memory_add_physaddr_to_nid implemented
> > and exported , it is no use exporting twice in arch directory even if
> > e,g, ia64/x86 have their specific version.
> > 
> > This is to suppress the modpost warning:
> > WARNING: modpost: vmlinux: 'memory_add_physaddr_to_nid' exported twice.
> > Previous export was in vmlinux
> 
> It's bad form to introduce a warning and then send a follow-up patch to
> fix the warning.  Just fold this patch into patch 1/6.

Moreover, I think that patches 1-4 can be merged into one.

-- 
Sincerely yours,
Mike.

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v3 4/6] mm: don't export memory_add_physaddr_to_nid in arch specific directory
  2020-07-09  9:18     ` Mike Rapoport
@ 2020-07-09  9:18       ` David Hildenbrand
  2020-07-09  9:36         ` Justin He
  0 siblings, 1 reply; 21+ messages in thread
From: David Hildenbrand @ 2020-07-09  9:18 UTC (permalink / raw)
  To: Mike Rapoport, Matthew Wilcox
  Cc: Rich Felker, linux-ia64, linux-sh, Peter Zijlstra,
	Catalin Marinas, Dave Hansen, linux-mm, Michal Hocko,
	H. Peter Anvin, Will Deacon, Thomas Gleixner, Jia He,
	Yoshinori Sato, linux-nvdimm, Vishal Verma, Masahiro Yamada, x86,
	Kaly Xin, Ingo Molnar, Fenghua Yu, Chuhong Yuan, Borislav Petkov,
	Andy Lutomirski, Jonathan Cameron, Dave Jiang, Dan Williams,
	linux-arm-kernel, Tony Luck, Baoquan He, linux-kernel,
	Andrew Morton, Logan Gunthorpe

On 09.07.20 11:18, Mike Rapoport wrote:
> On Thu, Jul 09, 2020 at 03:11:04AM +0100, Matthew Wilcox wrote:
>> On Thu, Jul 09, 2020 at 10:06:27AM +0800, Jia He wrote:
>>> After a general version of __weak memory_add_physaddr_to_nid implemented
>>> and exported , it is no use exporting twice in arch directory even if
>>> e,g, ia64/x86 have their specific version.
>>>
>>> This is to suppress the modpost warning:
>>> WARNING: modpost: vmlinux: 'memory_add_physaddr_to_nid' exported twice.
>>> Previous export was in vmlinux
>>
>> It's bad form to introduce a warning and then send a follow-up patch to
>> fix the warning.  Just fold this patch into patch 1/6.
> 
> Moreover, I think that patches 1-4 can be merged into one.
> 

+1

-- 
Thanks,

David / dhildenb

^ permalink raw reply	[flat|nested] 21+ messages in thread

* RE: [PATCH v3 4/6] mm: don't export memory_add_physaddr_to_nid in arch specific directory
  2020-07-09  9:18       ` David Hildenbrand
@ 2020-07-09  9:36         ` Justin He
  0 siblings, 0 replies; 21+ messages in thread
From: Justin He @ 2020-07-09  9:36 UTC (permalink / raw)
  To: David Hildenbrand, Mike Rapoport, Matthew Wilcox
  Cc: Rich Felker, linux-ia64, linux-sh, Peter Zijlstra,
	Catalin Marinas, Dave Hansen, linux-mm, Michal Hocko,
	H. Peter Anvin, Will Deacon, Thomas Gleixner, Dave Jiang,
	Yoshinori Sato, linux-nvdimm, Vishal Verma, Masahiro Yamada, x86,
	Kaly Xin, Ingo Molnar, Fenghua Yu, Chuhong Yuan, Borislav Petkov,
	Andy Lutomirski, Jonathan Cameron, Dan Williams,
	linux-arm-kernel, Tony Luck, Baoquan He, linux-kernel,
	Andrew Morton, Logan Gunthorpe

SGkgRGF2aWQNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBEYXZpZCBI
aWxkZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT4NCj4gU2VudDogVGh1cnNkYXksIEp1bHkgOSwg
MjAyMCA1OjE5IFBNDQo+IFRvOiBNaWtlIFJhcG9wb3J0IDxycHB0QGxpbnV4LmlibS5jb20+OyBN
YXR0aGV3IFdpbGNveA0KPiA8d2lsbHlAaW5mcmFkZWFkLm9yZz4NCj4gQ2M6IEp1c3RpbiBIZSA8
SnVzdGluLkhlQGFybS5jb20+OyBDYXRhbGluIE1hcmluYXMNCj4gPENhdGFsaW4uTWFyaW5hc0Bh
cm0uY29tPjsgV2lsbCBEZWFjb24gPHdpbGxAa2VybmVsLm9yZz47IFRvbnkgTHVjaw0KPiA8dG9u
eS5sdWNrQGludGVsLmNvbT47IEZlbmdodWEgWXUgPGZlbmdodWEueXVAaW50ZWwuY29tPjsgWW9z
aGlub3JpIFNhdG8NCj4gPHlzYXRvQHVzZXJzLnNvdXJjZWZvcmdlLmpwPjsgUmljaCBGZWxrZXIg
PGRhbGlhc0BsaWJjLm9yZz47IERhdmUgSGFuc2VuDQo+IDxkYXZlLmhhbnNlbkBsaW51eC5pbnRl
bC5jb20+OyBBbmR5IEx1dG9taXJza2kgPGx1dG9Aa2VybmVsLm9yZz47IFBldGVyDQo+IFppamxz
dHJhIDxwZXRlcnpAaW5mcmFkZWFkLm9yZz47IFRob21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJv
bml4LmRlPjsNCj4gSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+OyBCb3Jpc2xhdiBQZXRr
b3YgPGJwQGFsaWVuOC5kZT47DQo+IHg4NkBrZXJuZWwub3JnOyBILiBQZXRlciBBbnZpbiA8aHBh
QHp5dG9yLmNvbT47IERhbiBXaWxsaWFtcw0KPiA8ZGFuLmoud2lsbGlhbXNAaW50ZWwuY29tPjsg
VmlzaGFsIFZlcm1hIDx2aXNoYWwubC52ZXJtYUBpbnRlbC5jb20+OyBEYXZlDQo+IEppYW5nIDxk
YXZlLmppYW5nQGludGVsLmNvbT47IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlv
bi5vcmc+Ow0KPiBCYW9xdWFuIEhlIDxiaGVAcmVkaGF0LmNvbT47IENodWhvbmcgWXVhbiA8aHNs
ZXN0ZXI5NkBnbWFpbC5jb20+OyBMb2dhbg0KPiBHdW50aG9ycGUgPGxvZ2FuZ0BkZWx0YXRlZS5j
b20+OyBNYXNhaGlybyBZYW1hZGEgPG1hc2FoaXJveUBrZXJuZWwub3JnPjsNCj4gTWljaGFsIEhv
Y2tvIDxtaG9ja29Ac3VzZS5jb20+OyBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5v
cmc7DQo+IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWlhNjRAdmdlci5rZXJu
ZWwub3JnOyBsaW51eC0NCj4gc2hAdmdlci5rZXJuZWwub3JnOyBsaW51eC1udmRpbW1AbGlzdHMu
MDEub3JnOyBsaW51eC1tbUBrdmFjay5vcmc7DQo+IEpvbmF0aGFuIENhbWVyb24gPEpvbmF0aGFu
LkNhbWVyb25AaHVhd2VpLmNvbT47IEthbHkgWGluIDxLYWx5LlhpbkBhcm0uY29tPg0KPiBTdWJq
ZWN0OiBSZTogW1BBVENIIHYzIDQvNl0gbW06IGRvbid0IGV4cG9ydCBtZW1vcnlfYWRkX3BoeXNh
ZGRyX3RvX25pZCBpbg0KPiBhcmNoIHNwZWNpZmljIGRpcmVjdG9yeQ0KPiANCj4gT24gMDkuMDcu
MjAgMTE6MTgsIE1pa2UgUmFwb3BvcnQgd3JvdGU6DQo+ID4gT24gVGh1LCBKdWwgMDksIDIwMjAg
YXQgMDM6MTE6MDRBTSArMDEwMCwgTWF0dGhldyBXaWxjb3ggd3JvdGU6DQo+ID4+IE9uIFRodSwg
SnVsIDA5LCAyMDIwIGF0IDEwOjA2OjI3QU0gKzA4MDAsIEppYSBIZSB3cm90ZToNCj4gPj4+IEFm
dGVyIGEgZ2VuZXJhbCB2ZXJzaW9uIG9mIF9fd2VhayBtZW1vcnlfYWRkX3BoeXNhZGRyX3RvX25p
ZA0KPiBpbXBsZW1lbnRlZA0KPiA+Pj4gYW5kIGV4cG9ydGVkICwgaXQgaXMgbm8gdXNlIGV4cG9y
dGluZyB0d2ljZSBpbiBhcmNoIGRpcmVjdG9yeSBldmVuIGlmDQo+ID4+PiBlLGcsIGlhNjQveDg2
IGhhdmUgdGhlaXIgc3BlY2lmaWMgdmVyc2lvbi4NCj4gPj4+DQo+ID4+PiBUaGlzIGlzIHRvIHN1
cHByZXNzIHRoZSBtb2Rwb3N0IHdhcm5pbmc6DQo+ID4+PiBXQVJOSU5HOiBtb2Rwb3N0OiB2bWxp
bnV4OiAnbWVtb3J5X2FkZF9waHlzYWRkcl90b19uaWQnIGV4cG9ydGVkIHR3aWNlLg0KPiA+Pj4g
UHJldmlvdXMgZXhwb3J0IHdhcyBpbiB2bWxpbnV4DQo+ID4+DQo+ID4+IEl0J3MgYmFkIGZvcm0g
dG8gaW50cm9kdWNlIGEgd2FybmluZyBhbmQgdGhlbiBzZW5kIGEgZm9sbG93LXVwIHBhdGNoIHRv
DQo+ID4+IGZpeCB0aGUgd2FybmluZy4gIEp1c3QgZm9sZCB0aGlzIHBhdGNoIGludG8gcGF0Y2gg
MS82Lg0KPiA+DQo+ID4gTW9yZW92ZXIsIEkgdGhpbmsgdGhhdCBwYXRjaGVzIDEtNCBjYW4gYmUg
bWVyZ2VkIGludG8gb25lLg0KPiA+DQo+IA0KPiArMQ0KDQpPa2F5LCB3aWxsIHVwZGF0ZSwgdGhh
bmtzDQoNCi0tDQpDaGVlcnMsDQpKdXN0aW4gKEppYSBIZSkNCg0KDQo

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v3 3/6] sh/mm: use default dummy memory_add_physaddr_to_nid()
  2020-07-09  9:10   ` David Hildenbrand
@ 2020-07-20 21:39     ` Rich Felker
  0 siblings, 0 replies; 21+ messages in thread
From: Rich Felker @ 2020-07-20 21:39 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Michal Hocko, linux-ia64, linux-sh, Peter Zijlstra,
	Catalin Marinas, Dave Hansen, linux-mm, H. Peter Anvin,
	Will Deacon, Dan Williams, Jia He, Yoshinori Sato, linux-nvdimm,
	Vishal Verma, Masahiro Yamada, x86, Mike Rapoport, Kaly Xin,
	Ingo Molnar, Fenghua Yu, Chuhong Yuan, Borislav Petkov,
	Andy Lutomirski, Jonathan Cameron, Dave Jiang, Thomas Gleixner,
	linux-arm-kernel, Tony Luck, Baoquan He, linux-kernel,
	Andrew Morton, Logan Gunthorpe

On Thu, Jul 09, 2020 at 11:10:36AM +0200, David Hildenbrand wrote:
> On 09.07.20 04:06, Jia He wrote:
> > After making default memory_add_physaddr_to_nid in mm/memory_hotplug,
> > there is no use to define a similar one in arch specific directory.
> > 
> > Signed-off-by: Jia He <justin.he@arm.com>
> > ---
> >  arch/sh/mm/init.c | 9 ---------
> >  1 file changed, 9 deletions(-)
> > 
> > diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c
> > index a70ba0fdd0b3..f75932ba87a6 100644
> > --- a/arch/sh/mm/init.c
> > +++ b/arch/sh/mm/init.c
> > @@ -430,15 +430,6 @@ int arch_add_memory(int nid, u64 start, u64 size,
> >  	return ret;
> >  }
> >  
> > -#ifdef CONFIG_NUMA
> > -int memory_add_physaddr_to_nid(u64 addr)
> > -{
> > -	/* Node 0 for now.. */
> > -	return 0;
> > -}
> > -EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);
> > -#endif
> > -
> >  void arch_remove_memory(int nid, u64 start, u64 size,
> >  			struct vmem_altmap *altmap)
> >  {
> > 
> 
> Reviewed-by: David Hildenbrand <david@redhat.com>

Acked-by: Rich Felker <dalias@libc.org>

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v3 3/6] sh/mm: use default dummy memory_add_physaddr_to_nid()
  2020-07-09  2:06 ` [PATCH v3 3/6] sh/mm: " Jia He
  2020-07-09  9:10   ` David Hildenbrand
@ 2020-07-21  3:23   ` Pankaj Gupta
  1 sibling, 0 replies; 21+ messages in thread
From: Pankaj Gupta @ 2020-07-21  3:23 UTC (permalink / raw)
  To: Jia He
  Cc: Rich Felker, linux-ia64, David Hildenbrand, Peter Zijlstra,
	Catalin Marinas, Dave Hansen, Linux MM, Michal Hocko,
	H. Peter Anvin, Will Deacon, Yoshinori Sato, linux-nvdimm,
	linux-sh, Masahiro Yamada, x86, Mike Rapoport, Kaly Xin,
	Ingo Molnar, Fenghua Yu, Chuhong Yuan, Borislav Petkov,
	Andy Lutomirski, Jonathan Cameron, Thomas Gleixner,
	linux-arm-kernel, Tony Luck, Baoquan He, LKML, Andrew Morton

> After making default memory_add_physaddr_to_nid in mm/memory_hotplug,
> there is no use to define a similar one in arch specific directory.
>
> Signed-off-by: Jia He <justin.he@arm.com>
> ---
>  arch/sh/mm/init.c | 9 ---------
>  1 file changed, 9 deletions(-)
>
> diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c
> index a70ba0fdd0b3..f75932ba87a6 100644
> --- a/arch/sh/mm/init.c
> +++ b/arch/sh/mm/init.c
> @@ -430,15 +430,6 @@ int arch_add_memory(int nid, u64 start, u64 size,
>         return ret;
>  }
>
> -#ifdef CONFIG_NUMA
> -int memory_add_physaddr_to_nid(u64 addr)
> -{
> -       /* Node 0 for now.. */
> -       return 0;
> -}
> -EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);
> -#endif
> -
>  void arch_remove_memory(int nid, u64 start, u64 size,
>                         struct vmem_altmap *altmap)
>  {

Reviewed-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com>

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v3 0/6] Fix and enable pmem as RAM device on arm64
  2020-07-09  2:06 [PATCH v3 0/6] Fix and enable pmem as RAM device on arm64 Jia He
                   ` (5 preceding siblings ...)
  2020-07-09  2:06 ` [PATCH v3 6/6] mm/memory_hotplug: fix unpaired mem_hotplug_begin/done Jia He
@ 2020-07-31 15:28 ` Dan Williams
  6 siblings, 0 replies; 21+ messages in thread
From: Dan Williams @ 2020-07-31 15:28 UTC (permalink / raw)
  To: Jia He
  Cc: Rich Felker, linux-ia64, David Hildenbrand, Peter Zijlstra,
	Catalin Marinas, Dave Hansen, Linux MM, Michal Hocko,
	H. Peter Anvin, Will Deacon, Dave Jiang, Yoshinori Sato,
	linux-nvdimm, Linux-sh, Vishal Verma, Masahiro Yamada, X86 ML,
	Mike Rapoport, Kaly Xin, Ingo Molnar, Fenghua Yu, Chuhong Yuan,
	Borislav Petkov, Andy Lutomirski, Jonathan Cameron,
	Thomas Gleixner, Linux ARM, Tony Luck, Baoquan He,
	Linux Kernel Mailing List, Andrew Morton, Logan Gunthorpe

On Wed, Jul 8, 2020 at 7:06 PM Jia He <justin.he@arm.com> wrote:
>
> This fixies a few issues when I tried to enable pmem as RAM device on arm64.

What NVDIMM bus driver is being used in this case? The ACPI NFIT
driver? I'm just looking to see if currently deployed
phys_to_target_node() is sufficient, or if this is coming in a new
driver?

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2020-07-31 15:28 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-09  2:06 [PATCH v3 0/6] Fix and enable pmem as RAM device on arm64 Jia He
2020-07-09  2:06 ` [PATCH v3 1/6] mm/memory_hotplug: introduce default dummy memory_add_physaddr_to_nid() Jia He
2020-07-09  9:10   ` David Hildenbrand
2020-07-09  2:06 ` [PATCH v3 2/6] arm64/mm: use " Jia He
2020-07-09  9:10   ` David Hildenbrand
2020-07-09  2:06 ` [PATCH v3 3/6] sh/mm: " Jia He
2020-07-09  9:10   ` David Hildenbrand
2020-07-20 21:39     ` Rich Felker
2020-07-21  3:23   ` Pankaj Gupta
2020-07-09  2:06 ` [PATCH v3 4/6] mm: don't export memory_add_physaddr_to_nid in arch specific directory Jia He
2020-07-09  2:11   ` Matthew Wilcox
2020-07-09  2:16     ` Justin He
2020-07-09  9:18     ` Mike Rapoport
2020-07-09  9:18       ` David Hildenbrand
2020-07-09  9:36         ` Justin He
2020-07-09  2:06 ` [PATCH v3 5/6] device-dax: use fallback nid when numa_node is invalid Jia He
2020-07-09  3:38   ` Dan Williams
2020-07-09  5:13     ` Justin He
2020-07-09  2:06 ` [PATCH v3 6/6] mm/memory_hotplug: fix unpaired mem_hotplug_begin/done Jia He
2020-07-09  9:11   ` David Hildenbrand
2020-07-31 15:28 ` [PATCH v3 0/6] Fix and enable pmem as RAM device on arm64 Dan Williams

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).