Commit d622ecec authored by Jia He's avatar Jia He Committed by Linus Torvalds
Browse files

mm/memory_hotplug: introduce default dummy memory_add_physaddr_to_nid()



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.

This is the preparation to set a fallback value for dev_dax->target_node.

Signed-off-by: default avatarJia He <justin.he@arm.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: Rich Felker <dalias@libc.org>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Vishal Verma <vishal.l.verma@intel.com>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Baoquan He <bhe@redhat.com>
Cc: Chuhong Yuan <hslester96@gmail.com>
Cc: Mike Rapoport <rppt@linux.ibm.com>
Cc: Logan Gunthorpe <logang@deltatee.com>
Cc: Masahiro Yamada <masahiroy@kernel.org>
Cc: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
Cc: Kaly Xin <Kaly.Xin@arm.com>
Link: http://lkml.kernel.org/r/20200710031619.18762-2-justin.he@arm.com


Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent fe124c95
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -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;
}
+0 −2
Original line number Diff line number Diff line
@@ -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
+0 −9
Original line number Diff line number Diff line
@@ -425,15 +425,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)
{
+0 −1
Original line number Diff line number Diff line
@@ -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
+10 −0
Original line number Diff line number Diff line
@@ -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,