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. -- Kiryl Shutsemau / Kirill A. Shutemov