mm: rename CONFIG_PAGE_BLOCK_ORDER to CONFIG_PAGE_BLOCK_MAX_ORDER

The config is in fact an additional upper limit of pageblock_order, so
rename it to avoid confusion.

Link: https://lkml.kernel.org/r/20250604211427.1590859-1-ziy@nvidia.com
Signed-off-by: Zi Yan <ziy@nvidia.com>
Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Oscar Salvador <osalvador@suse.de>
Acked-by: Juan Yescas <jyescas@google.com>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: "Isaac J. Manjarres" <isaacmanjarres@google.com>
Cc: Kalesh Singh <kaleshsingh@google.com>
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Masahiro Yamada <masahiroy@kernel.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: T.J. Mercier <tjmercier@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
pull/1311/head
Zi Yan 2025-06-04 17:14:27 -04:00 committed by Andrew Morton
parent 792b429db7
commit 3800d55250
4 changed files with 20 additions and 19 deletions

View File

@ -38,19 +38,19 @@
#define NR_PAGE_ORDERS (MAX_PAGE_ORDER + 1) #define NR_PAGE_ORDERS (MAX_PAGE_ORDER + 1)
/* Defines the order for the number of pages that have a migrate type. */ /* Defines the order for the number of pages that have a migrate type. */
#ifndef CONFIG_PAGE_BLOCK_ORDER #ifndef CONFIG_PAGE_BLOCK_MAX_ORDER
#define PAGE_BLOCK_ORDER MAX_PAGE_ORDER #define PAGE_BLOCK_MAX_ORDER MAX_PAGE_ORDER
#else #else
#define PAGE_BLOCK_ORDER CONFIG_PAGE_BLOCK_ORDER #define PAGE_BLOCK_MAX_ORDER CONFIG_PAGE_BLOCK_MAX_ORDER
#endif /* CONFIG_PAGE_BLOCK_ORDER */ #endif /* CONFIG_PAGE_BLOCK_MAX_ORDER */
/* /*
* The MAX_PAGE_ORDER, which defines the max order of pages to be allocated * The MAX_PAGE_ORDER, which defines the max order of pages to be allocated
* by the buddy allocator, has to be larger or equal to the PAGE_BLOCK_ORDER, * by the buddy allocator, has to be larger or equal to the PAGE_BLOCK_MAX_ORDER,
* which defines the order for the number of pages that can have a migrate type * which defines the order for the number of pages that can have a migrate type
*/ */
#if (PAGE_BLOCK_ORDER > MAX_PAGE_ORDER) #if (PAGE_BLOCK_MAX_ORDER > MAX_PAGE_ORDER)
#error MAX_PAGE_ORDER must be >= PAGE_BLOCK_ORDER #error MAX_PAGE_ORDER must be >= PAGE_BLOCK_MAX_ORDER
#endif #endif
/* /*

View File

@ -41,18 +41,18 @@ extern unsigned int pageblock_order;
* Huge pages are a constant size, but don't exceed the maximum allocation * Huge pages are a constant size, but don't exceed the maximum allocation
* granularity. * granularity.
*/ */
#define pageblock_order MIN_T(unsigned int, HUGETLB_PAGE_ORDER, PAGE_BLOCK_ORDER) #define pageblock_order MIN_T(unsigned int, HUGETLB_PAGE_ORDER, PAGE_BLOCK_MAX_ORDER)
#endif /* CONFIG_HUGETLB_PAGE_SIZE_VARIABLE */ #endif /* CONFIG_HUGETLB_PAGE_SIZE_VARIABLE */
#elif defined(CONFIG_TRANSPARENT_HUGEPAGE) #elif defined(CONFIG_TRANSPARENT_HUGEPAGE)
#define pageblock_order MIN_T(unsigned int, HPAGE_PMD_ORDER, PAGE_BLOCK_ORDER) #define pageblock_order MIN_T(unsigned int, HPAGE_PMD_ORDER, PAGE_BLOCK_MAX_ORDER)
#else /* CONFIG_TRANSPARENT_HUGEPAGE */ #else /* CONFIG_TRANSPARENT_HUGEPAGE */
/* If huge pages are not used, group by PAGE_BLOCK_ORDER */ /* If huge pages are not used, group by PAGE_BLOCK_MAX_ORDER */
#define pageblock_order PAGE_BLOCK_ORDER #define pageblock_order PAGE_BLOCK_MAX_ORDER
#endif /* CONFIG_HUGETLB_PAGE */ #endif /* CONFIG_HUGETLB_PAGE */

View File

@ -1005,8 +1005,8 @@ config ARCH_FORCE_MAX_ORDER
# the default page block order is MAX_PAGE_ORDER (10) as per # the default page block order is MAX_PAGE_ORDER (10) as per
# include/linux/mmzone.h. # include/linux/mmzone.h.
# #
config PAGE_BLOCK_ORDER config PAGE_BLOCK_MAX_ORDER
int "Page Block Order" int "Page Block Order Upper Limit"
range 1 10 if ARCH_FORCE_MAX_ORDER = 0 range 1 10 if ARCH_FORCE_MAX_ORDER = 0
default 10 if ARCH_FORCE_MAX_ORDER = 0 default 10 if ARCH_FORCE_MAX_ORDER = 0
range 1 ARCH_FORCE_MAX_ORDER if ARCH_FORCE_MAX_ORDER != 0 range 1 ARCH_FORCE_MAX_ORDER if ARCH_FORCE_MAX_ORDER != 0
@ -1014,12 +1014,13 @@ config PAGE_BLOCK_ORDER
help help
The page block order refers to the power of two number of pages that The page block order refers to the power of two number of pages that
are physically contiguous and can have a migrate type associated to are physically contiguous and can have a migrate type associated to
them. The maximum size of the page block order is limited by them. The maximum size of the page block order is at least limited by
ARCH_FORCE_MAX_ORDER. ARCH_FORCE_MAX_ORDER/MAX_PAGE_ORDER.
This config allows overriding the default page block order when the This config adds a new upper limit of default page block
page block order is required to be smaller than ARCH_FORCE_MAX_ORDER order when the page block order is required to be smaller than
or MAX_PAGE_ORDER. ARCH_FORCE_MAX_ORDER/MAX_PAGE_ORDER or other limits
(see include/linux/pageblock-flags.h for details).
Reducing pageblock order can negatively impact THP generation Reducing pageblock order can negatively impact THP generation
success rate. If your workloads use THP heavily, please use this success rate. If your workloads use THP heavily, please use this

View File

@ -1509,7 +1509,7 @@ static inline void setup_usemap(struct zone *zone) {}
/* Initialise the number of pages represented by NR_PAGEBLOCK_BITS */ /* Initialise the number of pages represented by NR_PAGEBLOCK_BITS */
void __init set_pageblock_order(void) void __init set_pageblock_order(void)
{ {
unsigned int order = PAGE_BLOCK_ORDER; unsigned int order = PAGE_BLOCK_MAX_ORDER;
/* Check that pageblock_nr_pages has not already been setup */ /* Check that pageblock_nr_pages has not already been setup */
if (pageblock_order) if (pageblock_order)