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