Re: [PATCH 0/2] mm/hugetlb Try to respect mempolicy when calculating surplus huge pages
From: chaithco@xxxxxxxxxx
Date: Tue Sep 08 2026 - 12:49:35 EST
On Tue, 2026-07-07 at 12:28 -0600, Charles Haithcock wrote:
> Presently, when calculating how many huge pages are needed when
> reserving surplus huge pages, the global count of free huge pages
> is used. When reserving with a mempolicy, the global count of free
> huge
> pages is used even if some/all of those free huge pages are on numa
> nodes outside of the mempolicy.
>
> Reserving surplus huge pages is ultimately best effort even without a
> mempolicy. Restrictions from cpusets and mempolicies further
> complicate
> calculating correct numbers of surplus huge pages to reserve and
> maintaining which nodes those reservations belong to (see the comment
> in
> `hugetlb_acct_memory`).
>
> However, we can do a little better when reserving surplus huge pages
> with a mempolicy. This patch changes how to calculate the necessary
> amount of surplus huge pages to reserve by considering the max of
> either
> the amount of free huge pages on nodes in the mempolicy or the global
> amount of free huge pages. We may still attempt to reserve huge pages
> outside the mempolicy, however, we end up being more likely to
> reserve
> from nodes in the mempolicy.
>
> - v1: Modified `needed` calculation to use `allowed_mems_nr(h)` in
> order
> to consider free hugetlb pages in our mempolicy.
> - v2: Folded in Joshua Hahn's recommendation [1] to further modify
> `needed` calculation to take the max of either the available
> hugetlb
> pages in the mempolicy or the globally available hugetlb pages.
> Allows
> allocations to prioritize nodes in the mempolicy but can still fall
> back to offnode allocations. Also added selftests to check only for
> the edgecase which caused this to initially be reported and sanity
> checks.
> - v3: Split the change and tests into separate patches and clean up
> code
> to better align with kernel style guidelines. Likewise, fold in
> Usama
> Arif's correction [2].
>
> [1]
> https://lore.kernel.org/all/20260602152022.2673803-1-joshua.hahnjy@xxxxxxxxx/
> [2]
> https://lore.kernel.org/linux-mm/20260624144600.8159-1-usama.arif@xxxxxxxxx/
>
> Charles Haithcock (2):
> mm/hugetlb: Prefer mempolicy nodes for calcuating surplus hugepage
> reservation
> selftests/mm: add surplus hugetlb mempolicy reservation tests
>
> mm/hugetlb.c | 42 +-
> tools/testing/selftests/mm/Makefile | 3 +
> .../selftests/mm/hugetlb_surplus_mempolicy.c | 491
> ++++++++++++++++++
> tools/testing/selftests/mm/run_vmtests.sh | 1 +
> 4 files changed, 517 insertions(+), 20 deletions(-)
> create mode 100644
> tools/testing/selftests/mm/hugetlb_surplus_mempolicy.c
Any followups on this? Please do let me know if I need to do anything
else to help this patch along! :)
Attachment:
signature.asc
Description: This is a digitally signed message part