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