[PATCH 0/1] arm64/sparsemem: reduce SECTION_SIZE_BITS

From: Sudarshan Rajagopalan
Date: Thu Jan 21 2021 - 00:31:05 EST


This patch is the follow-up from the discussions in the thread [1].
Reducing the section size has the merit of reducing wastage of reserved memory
for vmmemmap mappings for sections with large memory holes. Also with smaller
section size gives more grunularity and agility for memory hot(un)plugging.

But there are also constraints in reducing SECTION_SIZE_BIT:

- Should accommodate highest order page for a given config
- Should not break PMD mapping in vmemmap for 4K pages
- Should not consume too many page->flags bits reducing space for other info

This patch uses the suggestions from Anshuman Khandual and David Hildenbrand
in thread [1] to set the least possible section size to 128MB for 4K and 16K
base page size configs for simplicity, and to 512MB for 64K base page size config.

[1] https://lore.kernel.org/lkml/cover.1609895500.git.sudaraja@xxxxxxxxxxxxxx/T/#m8ee60ae69db5e9eb06ca7999c43828d49ccb9626


Sudarshan Rajagopalan (1):
arm64/sparsemem: reduce SECTION_SIZE_BITS

arch/arm64/include/asm/sparsemem.h | 23 +++++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)

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