The per-cpu page allocator (PCP) only handles order-0 pages. With the series "Use local_lock for pcp protection and reduce stat overhead" and "Calculate pcp->high based on zone sizes and active CPUs", it's now feasible to store high-order pages on PCP lists. This small series allows PCP to store "cheap" orders where cheap is determined by PAGE_ALLOC_COSTLY_ORDER and THP-sized allocations. For convenience, the series with the prerequisites are at git://git.kernel.org/pub/scm/linux/kernel/git/mel/linux.git mm-pcphighorder-v1r7 The baseline is 5.13-rc2 because that is what I tested with but the patches rebase cleanly to mmots. include/linux/mmzone.h | 20 ++++- mm/internal.h | 2 +- mm/page_alloc.c | 171 +++++++++++++++++++++++++++++------------ mm/swap.c | 2 +- 4 files changed, 141 insertions(+), 54 deletions(-) -- 2.26.2