[PATCH v2 0/4] Clean up hugetlb boot command line processing

From: Mike Kravetz
Date: Wed Apr 01 2020 - 14:41:29 EST


v2 -
Fix build errors with patch 1 (Will)
Change arch_hugetlb_valid_size arg to unsigned long and remove
irrelevant 'extern' keyword (Christophe)
Documentation and other misc changes (Randy, Christophe, Mina)
Do not process command line options if !hugepages_supported()
(Dave, but it sounds like we may want to additional changes to
hugepages_supported() for x86? If that is needed I would prefer
a separate patch.)

Longpeng(Mike) reported a weird message from hugetlb command line processing
and proposed a solution [1]. While the proposed patch does address the
specific issue, there are other related issues in command line processing.
As hugetlbfs evolved, updates to command line processing have been made to
meet immediate needs and not necessarily in a coordinated manner. The result
is that some processing is done in arch specific code, some is done in arch
independent code and coordination is problematic. Semantics can vary between
architectures.

The patch series does the following:
- Define arch specific arch_hugetlb_valid_size routine used to validate
passed huge page sizes.
- Move hugepagesz= command line parsing out of arch specific code and into
an arch independent routine.
- Clean up command line processing to follow desired semantics and
document those semantics.

[1] https://lore.kernel.org/linux-mm/20200305033014.1152-1-longpeng2@xxxxxxxxxx

Mike Kravetz (4):
hugetlbfs: add arch_hugetlb_valid_size
hugetlbfs: move hugepagesz= parsing to arch independent code
hugetlbfs: remove hugetlb_add_hstate() warning for existing hstate
hugetlbfs: clean up command line processing

.../admin-guide/kernel-parameters.txt | 35 +++--
Documentation/admin-guide/mm/hugetlbpage.rst | 44 ++++++
arch/arm64/include/asm/hugetlb.h | 2 +
arch/arm64/mm/hugetlbpage.c | 30 +---
arch/powerpc/include/asm/hugetlb.h | 3 +
arch/powerpc/mm/hugetlbpage.c | 30 ++--
arch/riscv/include/asm/hugetlb.h | 3 +
arch/riscv/mm/hugetlbpage.c | 24 +--
arch/s390/include/asm/hugetlb.h | 3 +
arch/s390/mm/hugetlbpage.c | 24 +--
arch/sparc/include/asm/hugetlb.h | 3 +
arch/sparc/mm/init_64.c | 43 ++----
arch/x86/include/asm/hugetlb.h | 5 +
arch/x86/mm/hugetlbpage.c | 23 +--
include/linux/hugetlb.h | 8 +-
mm/hugetlb.c | 141 ++++++++++++++----
16 files changed, 252 insertions(+), 169 deletions(-)

--
2.25.1