[PATCH 1/1] arm64: make section size configurable for memory hotplug

From: Sudarshan Rajagopalan
Date: Tue Jan 05 2021 - 20:31:04 EST


Currently on arm64, memory section size is hard-coded to 1GB.
Make this configurable if memory-hotplug is enabled, to support
more finer granularity for hotplug-able memory.

Signed-off-by: Sudarshan Rajagopalan <sudaraja@xxxxxxxxxxxxxx>
---
arch/arm64/Kconfig | 11 +++++++++++
arch/arm64/include/asm/sparsemem.h | 4 ++++
2 files changed, 15 insertions(+)

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 6d232837cbee..34124eee65da 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -294,6 +294,17 @@ config ARCH_ENABLE_MEMORY_HOTREMOVE
config SMP
def_bool y

+config HOTPLUG_SIZE_BITS
+ int "Memory hotplug block size(29 => 512MB 30 => 1GB)"
+ depends on SPARSEMEM
+ depends on MEMORY_HOTPLUG
+ range 28 30
+ default 30
+ help
+ Selects granularity of hotplug memory. Block size for
+ memory hotplug is represent as a power of 2.
+ If unsure, stick with default value.
+
config KERNEL_MODE_NEON
def_bool y

diff --git a/arch/arm64/include/asm/sparsemem.h b/arch/arm64/include/asm/sparsemem.h
index 1f43fcc79738..3d5310f3aad5 100644
--- a/arch/arm64/include/asm/sparsemem.h
+++ b/arch/arm64/include/asm/sparsemem.h
@@ -7,7 +7,11 @@

#ifdef CONFIG_SPARSEMEM
#define MAX_PHYSMEM_BITS CONFIG_ARM64_PA_BITS
+#ifndef CONFIG_MEMORY_HOTPLUG
#define SECTION_SIZE_BITS 30
+#else
+#define SECTION_SIZE_BITS CONFIG_HOTPLUG_SIZE_BITS
+#endif
#endif

#endif
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project