First non-RFC of the page allocator cleanups on top of the THP
allocation fix:
https://lore.kernel.org/all/20251219-costly-noretry-thisnode-fix-v1-1-e1085a4a0c34@suse.cz/
Rebased to mm-unstable where the fix is included now.
In patch 1, in v1 (where it was patch 2) I have proposed not to attempt
reclaim for costly __GFP_NORETRY allocations at all. Johannes suggested
that we should not change the semantics that much, so now instead we
allow them all (except with __GFP_THISNODE). The main idea that remains
is that we don't decide based on the exact compaction result anymore.
Patch 2 is a cleanup also based on a suggestion from Johannes, and Patch
3 became the obvious next step in that direction. These should be making
no functional changes, while simplifying __alloc_pages_slowpath().
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
---
Changes in v3:
- Remove RFC tag, rebase to mm-unstable.
- Remove gfp_thisnode_noretry() in Patch 2 (per Joshua).
- Instead add gfp_has_flags() to shorten checking for multiple flags.
- Link to v2: https://patch.msgid.link/20251219-thp-thisnode-tweak-v2-0-0c01f231fd1c@suse.cz
Changes in v2:
- actual THP reclaim fix sent separately
- allow one reclaim attempt for __GFP_NORETRY allocations
- further __alloc_pages_slowpath() cleanups
- Link to v1: https://patch.msgid.link/20251216-thp-thisnode-tweak-v1-0-0e499d13d2eb@suse.cz
---
Vlastimil Babka (3):
mm/page_alloc: ignore the exact initial compaction result
mm/page_alloc: refactor the initial compaction handling
mm/page_alloc: simplify __alloc_pages_slowpath() flow
include/linux/gfp.h | 8 ++-
mm/page_alloc.c | 163 +++++++++++++++++++++++-----------------------------
2 files changed, 78 insertions(+), 93 deletions(-)
---
base-commit: 186f32b9f92ad7ef6bb90d1d0e9692665cfbb69b
change-id: 20251216-thp-thisnode-tweak-c9c2acb3a627
Best regards,
--
Vlastimil Babka <vbabka@suse.cz>