[PATCH] arm64: Make the ARCH_FORCE_MAX_ORDER config input prompt unconditional

Marc Zyngier maz at kernel.org
Thu May 18 08:56:28 PDT 2023


On Wed, 03 May 2023 13:33:42 +0100,
Catalin Marinas <catalin.marinas at arm.com> wrote:
> 
> Commit 34affcd7577a ("arm64: drop ranges in definition of
> ARCH_FORCE_MAX_ORDER") dropped the ranges from the config entry and
> introduced an EXPERT condition on the input prompt instead. This change
> may affect some distro kernels that change ARCH_FORCE_MAX_ORDER but do
> not want to enable EXPERT.
> 
> Drop EXPERT from the input prompt together with the (ARM64_4K_PAGES ||
> ARM64_16K_PAGES) condition as the latter no longer makes sense after the
> ranges were removed. The latter makes all the page size configurations
> consistent w.r.t. ARCH_FORCE_MAX_ORDER.
> 
> Fixes: 34affcd7577a ("arm64: drop ranges in definition of ARCH_FORCE_MAX_ORDER")
> Signed-off-by: Catalin Marinas <catalin.marinas at arm.com>
> Reported-by: Justin M. Forbes <jforbes at fedoraproject.org>
> Cc: Will Deacon <will at kernel.org>
> Cc: Mike Rapoport <rppt at kernel.org>
> Cc: Andrew Morton <akpm at linux-foundation.org>
> ---
>  arch/arm64/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index b1201d25a8a4..1867aba83ba3 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -1516,7 +1516,7 @@ config XEN
>  # 16K |       27          |      14      |       13        |         11         |
>  # 64K |       29          |      16      |       13        |         13         |
>  config ARCH_FORCE_MAX_ORDER
> -	int "Order of maximal physically contiguous allocations" if EXPERT && (ARM64_4K_PAGES || ARM64_16K_PAGES)
> +	int "Order of maximal physically contiguous allocations"
>  	default "13" if ARM64_64K_PAGES
>  	default "11" if ARM64_16K_PAGES
>  	default "10"
> 

This patch (and the previous one) has the unfortunate side effect of
completely breaking a change of page size (from 4k to 16k, for
example):

<quote>
maz at valley-girl:~/hot-poop/arm-platforms$ make defconfig
*** Default configuration is based on 'defconfig'
#
# configuration written to .config
#
maz at valley-girl:~/hot-poop/arm-platforms$ egrep 'PAGE_SHIFT|MAX_ORDER' .config
CONFIG_ARM64_PAGE_SHIFT=12
CONFIG_ARCH_FORCE_MAX_ORDER=10
maz at valley-girl:~/hot-poop/arm-platforms$ make menuconfig
configuration written to .config

*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

maz at valley-girl:~/hot-poop/arm-platforms$ egrep 'PAGE_SHIFT|MAX_ORDER' .config
CONFIG_ARM64_PAGE_SHIFT=14
CONFIG_ARCH_FORCE_MAX_ORDER=10
</quote>

The build then fails in ways that aren't obvious (BUILD_BUG in the THP
code). It would much better if the result of the configuration tool
would produce something that can actually build.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.



More information about the linux-arm-kernel mailing list