Re: [PATCH] mm: Add ARCH_FORCE_PAGE_BLOCK_ORDER to select page block order
From: Juan Yescas <hidden>
Date: 2025-05-01 21:07:27
Also in:
linux-mm, lkml
On Thu, May 1, 2025 at 11:38 AM Matthew Wilcox [off-list ref] wrote:
On Wed, Apr 30, 2025 at 10:25:11PM -0700, Juan Yescas wrote:quoted
Problem: On large page size configurations (16KiB, 64KiB), the CMA alignment requirement (CMA_MIN_ALIGNMENT_BYTES) increases considerably, and this causes the CMA reservations to be larger than necessary. This means that system will have less available MIGRATE_UNMOVABLE and MIGRATE_RECLAIMABLE page blocks since MIGRATE_CMA can't fallback to them. The CMA_MIN_ALIGNMENT_BYTES increases because it depends on MAX_PAGE_ORDER which depends on ARCH_FORCE_MAX_ORDER. The value of ARCH_FORCE_MAX_ORDER increases on 16k and 64k kernels.Sure, but why would any architecture *NOT* want to set this? This seems like you're making each architecture bump into the problem by itself, when the real problem is that the CMA people never thought about this and should have come up with better defaults.
Sorry Matthew about my previous reply. I think I misunderstood you.
You mean that we should move the configuration to mm/Kconfig as per Zi
suggestion so that other architectures can utilize if need? and have
something like this in mm/Kconfig
config ARCH_FORCE_PAGE_BLOCK_ORDER
int "Page Block Order"
range 1 ARCH_FORCE_MAX_ORDER
default ARCH_FORCE_MAX_ORDER if ARCH_FORCE_MAX_ORDER
default 10 if !ARCH_FORCE_MAX_ORDER
Or should we include ARCH_FORCE_PAGE_BLOCK_ORDER only on the
architectures that configure ARCH_FORCE_MAX_ORDER? In this case
arch/arc/Kconfig
arch/arm/Kconfig
arch/arm64/Kconfig
arch/loongarch/Kconfig
arch/m68k/Kconfig.cpu
arch/mips/Kconfig
arch/nios2/Kconfig
arch/powerpc/Kconfig
arch/sh/mm/Kconfig
arch/sparc/Kconfig
arch/xtensa/Kconfig