[PATCH 0/3] mm/page_reporting: Make page reporting work on arm64 with 64KB page size

From: Gavin Shan
Date: Sun Jun 20 2021 - 23:11:30 EST


The page reporting threshold is currently equal to @pageblock_order, which
is 13 and 512MB on arm64 with 64KB base page size selected. The page
reporting won't be triggered if the freeing page can't come up with a free
area like that huge. The condition is hard to be met, especially when the
system memory becomes fragmented.

This series intends to solve the issue by having page reporting threshold
as 5 (2MB) on arm64 with 64KB base page size. The patches are organized as:

PATCH[1/3] introduces variable (@page_reporting_order) to replace original
macro (PAGE_REPORTING_MIN_ORDER). It's also exported so that it
can be adjusted at runtime.
PATCH[2/3] renames PAGE_REPORTING_MIN_ORDER with PAGE_REPORTING_ORDER and
allows architecture to specify its own version.
PATCH[3/3] defines PAGE_REPORTING_ORDER to 5, corresponding to 2MB in size,
on arm64 when 64KB base page size is selected. It's still same
as to @pageblock_order for other architectures and cases.

Gavin Shan (3):
mm/page_reporting: Allow to set reporting order
mm/page_reporting: Allow architecture to select reporting order
arm64: mm: Specify smaller page reporting order

Documentation/admin-guide/kernel-parameters.txt | 6 ++++++
arch/arm64/include/asm/page.h | 13 +++++++++++++
mm/page_reporting.c | 8 ++++++--
mm/page_reporting.h | 10 +++++++---
4 files changed, 32 insertions(+), 5 deletions(-)

--
2.23.0