Re: [PATCH 10/10] mm, treewide: Redefine MAX_ORDER sanely

From: Vineet Gupta
Date: Thu Mar 16 2023 - 22:07:27 EST




On 3/16/23 16:30, Kirill A. Shutemov wrote:
On Thu, Mar 16, 2023 at 11:15:47AM -0700, Mike Kravetz wrote:
On 03/15/23 14:31, Kirill A. Shutemov wrote:
MAX_ORDER currently defined as number of orders page allocator supports:
user can ask buddy allocator for page order between 0 and MAX_ORDER-1.

This definition is counter-intuitive and lead to number of bugs all over
the kernel.

Change the definition of MAX_ORDER to be inclusive: the range of orders
user can ask from buddy allocator is 0..MAX_ORDER now.

--- a/arch/arc/Kconfig
+++ b/arch/arc/Kconfig
@@ -556,7 +556,7 @@ endmenu # "ARC Architecture Configuration"
config ARCH_FORCE_MAX_ORDER
int "Maximum zone order"
- default "12" if ARC_HUGEPAGE_16M
- default "11"
+ default "11" if ARC_HUGEPAGE_16M
+ default "10"
Is this Kconfig file wrong (off by 1) today? It seems like it wants MAX_ORDER
to be sufficiently large to allocate 16M if ARC_HUGEPAGE_16M. So, seems like
it should be 13 today?
+Vineet.

Hm. I think it is okay as long as CONFIG_ARC_PAGE_SIZE_8K=y which is
default, but breaks for other PAGE_SIZE.

Looks like ARCH_FORCE_MAX_ORDER calculation should involve selected page
size.

Thats right 8K is default for ARC.

-Vineet