[PATCH 0/8] mm: Fix several issues with unaccepted memory

From: Kirill A. Shutemov
Date: Mon Aug 05 2024 - 11:00:16 EST


The patchset addresses several issues related to unaccepted memory.

The most severe issue is a kswapd hang, which is fixed by patch 1/8.

Patch 2/8 ensures that __alloc_pages_bulk() will not exhaust all
accepted memory without accepting more.

Patches 3/8-5/8 are preparations for patch 6/8, which fixes
alloc_config_page() on machines with unaccepted memory. This allows, for
example, the allocation of gigantic pages at runtime.

Patches 7/8-8/8 enable the kernel to accept memory up to the promo
watermark.

I believe only the first patch deserves backporting.

Please review. Any feedback is welcome.

Kirill A. Shutemov (8):
mm: Fix endless reclaim on machines with unaccepted memory
mm: Accept memory in __alloc_pages_bulk().
mm: Introduce PageUnaccepted() page type
mm: Rename accept_page() to accept_page_memory()
mm: Add a helper to accept page
mm: page_isolation: Handle unaccepted memory isolation
mm: Introduce promo_wmark_pages()
mm: Accept to promo watermark

include/linux/mmzone.h | 1 +
include/linux/page-flags.h | 3 +
kernel/sched/fair.c | 2 +-
mm/internal.h | 8 +++
mm/page_alloc.c | 120 ++++++++++++++++++++++++-------------
mm/page_isolation.c | 8 +++
mm/vmscan.c | 2 +-
7 files changed, 100 insertions(+), 44 deletions(-)

--
2.43.0