Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Zi Yan <ziy@nvidia.com>
To: Ackerley Tng <ackerleytng@google.com>, Qi Zheng <qi.zheng@linux.dev>
Cc: Muchun Song <muchun.song@linux.dev>,
	Oscar Salvador <osalvador@suse.de>,
	David Hildenbrand <david@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	fvdl@google.com, jiaqiyan@google.com, joshua.hahnjy@gmail.com,
	jthoughton@google.com, mhocko@kernel.org, michael.roth@amd.com,
	pasha.tatashin@soleen.com, pbonzini@redhat.com,
	peterx@redhat.com, pratyush@kernel.org,
	rick.p.edgecombe@intel.com, rientjes@google.com,
	roman.gushchin@linux.dev, seanjc@google.com,
	shakeel.butt@linux.dev, shivankg@amd.com, vannapurve@google.com,
	yan.y.zhao@intel.com, Matthew Brost <matthew.brost@intel.com>,
	Rakie Kim <rakie.kim@sk.com>, Byungchul Park <byungchul@sk.com>,
	Gregory Price <gourry@gourry.net>,
	Ying Huang <ying.huang@linux.alibaba.com>,
	Alistair Popple <apopple@nvidia.com>,
	Dan Williams <djbw@kernel.org>, Jason Gunthorpe <jgg@ziepe.ca>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 0/6] Open HugeTLB allocation routine for more generic use
Date: Thu, 02 Jul 2026 12:51:20 -0400	[thread overview]
Message-ID: <5BCC635A-9CB2-42AF-B7CA-43886CF2BEC7@nvidia.com> (raw)
In-Reply-To: <20260702-hugetlb-open-up-v4-0-d53cefcccf34@google.com>

+Qi

Since he is looking into adding memory reservation functionality to THP[1]
and this looks related.

[1] https://lore.kernel.org/all/cover.1782538002.git.zhengqi.arch@bytedance.com/

On 2 Jul 2026, at 12:21, Ackerley Tng via B4 Relay wrote:

> Hi,
>
> The motivation for this patch series is guest_memfd, which would like
> to use HugeTLB as a generic source of huge pages but not adopt
> HugeTLB's reservation at mmap() time.
>
> By refactoring alloc_hugetlb_folio() and some dependent functions,
> there is now an option to allocate HugeTLB folios without providing a
> VMA. Specifically, HugeTLB allocation used to be dependent on the VMA
> to
>
> 1. Look up reservations in the resv_map
> 2. Get mpol, stored at vma->vm_policy
>
> This refactoring provides hugetlb_alloc_folio(), which focuses on just
> the allocation itself, and associated memory and HugeTLB charging
> (cgroups). alloc_hugetlb_folio() still handles reservations in the
> resv_map and subpools.
>
> Regarding naming, I'm definitely open to alternative names :) I chose
> hugetlb_alloc_folio() because I'm seeing this function as a general
> allocation function that is provided by the HugeTLB subsystem (hence
> the hugetlb_ prefix). I'm intending for alloc_hugetlb_folio() to be
> later refactored as a static function for use just by HugeTLB, and
> HugeTLBfs should probably use hugetlb_alloc_folio() directly.
>
> To see how hugetlb_alloc_folio() is used by guest_memfd, the most
> recent patch series that uses this more generic HugeTLB allocation
> routine is at [1], and a newer revision of that patch series is at
> [2].
>
> Independently of guest_memfd, I believe this change is useful in
> simplifying alloc_hugetlb_folio(). alloc_hugetlb_folio() was so
> coupled to a VMA that even HugeTLBfs allocates HugeTLB folios using a
> pseudo-VMA.
>
> Testing:
>
> + libhugetlbfs tests pass
> + ./tools/testing/selftests/mm/ksft_hugetlb.sh passes
>
> Andrew, thanks for nudging me to send a v4!
>
> Oscar, you mentioned that you wanted to do a closer review on v3, hope you
> find time to review v4 soon!
>
> Changes in this revision:
>
> + Define gfp within hugetlb_alloc_folio() instead of having it as a
>   parameter so users aren't able to override gfp arbitrarily as Oscar
>   requested.
> + Addressed some of Sashiko's comments [4]. Some of the issues I didn't address
>   were pre-existing issues. Since v3 of this series Sashiko was updated to
>   actually send mails. I'd let Sashiko point them out again and then we should
>   discuss those!
>
> [1] https://lore.kernel.org/all/cover.1747264138.git.ackerleytng@google.com/T/
> [2] https://github.com/googleprodkernel/linux-cc/tree/wip-gmem-conversions-hugetlb-restructuring-12-08-25
> [3] https://lore.kernel.org/all/agqaUcVp_hwH-VXr@localhost.localdomain/
> [4] https://sashiko.dev/#/patchset/20260518-hugetlb-open-up-v3-0-e14b302477f8@google.com
>
> RFC v1: https://lore.kernel.org/all/bb35a69a-5be9-45f5-a557-1902487a1bc2@linux.dev/
> v2: https://lore.kernel.org/r/20260506-hugetlb-open-up-v2-0-826a0c5f28fc@google.com
> v3: https://lore.kernel.org/r/20260518-hugetlb-open-up-v3-0-e14b302477f8@google.com
>
> ---
> Ackerley Tng (6):
>       mm: hugetlb: Consolidate interpretation of gbl_chg within alloc_hugetlb_folio()
>       mm: hugetlb: Move mpol interpretation out of alloc_buddy_hugetlb_folio_with_mpol()
>       mm: hugetlb: Move mpol interpretation out of dequeue_hugetlb_folio_vma()
>       mm: hugetlb: Use error variable in alloc_hugetlb_folio
>       mm: hugetlb: Move mem_cgroup_charge_hugetlb() earlier in allocation
>       mm: hugetlb: Refactor out hugetlb_alloc_folio()
>
>  include/linux/hugetlb.h        |  18 +++
>  include/uapi/linux/mempolicy.h |   2 +-
>  mm/hugetlb.c                   | 269 ++++++++++++++++++++++++-----------------
>  3 files changed, 175 insertions(+), 114 deletions(-)
> ---
> base-commit: 4a50a141f05a8d1737661b19ee22ff8455b94409
> change-id: 20260504-hugetlb-open-up-eaba80571b09
>
> Best regards,
> --
> Ackerley Tng <ackerleytng@google.com>


Best Regards,
Yan, Zi


  parent reply	other threads:[~2026-07-03  1:11 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-02 16:21 [PATCH v4 0/6] Open HugeTLB allocation routine for more generic use Ackerley Tng via B4 Relay
2026-07-02 16:21 ` [PATCH v4 1/6] mm: hugetlb: Consolidate interpretation of gbl_chg within alloc_hugetlb_folio() Ackerley Tng via B4 Relay
2026-07-02 16:21 ` [PATCH v4 2/6] mm: hugetlb: Move mpol interpretation out of alloc_buddy_hugetlb_folio_with_mpol() Ackerley Tng via B4 Relay
2026-07-02 16:21 ` [PATCH v4 3/6] mm: hugetlb: Move mpol interpretation out of dequeue_hugetlb_folio_vma() Ackerley Tng via B4 Relay
2026-07-02 16:21 ` [PATCH v4 4/6] mm: hugetlb: Use error variable in alloc_hugetlb_folio Ackerley Tng via B4 Relay
2026-07-02 16:21 ` [PATCH v4 5/6] mm: hugetlb: Move mem_cgroup_charge_hugetlb() earlier in allocation Ackerley Tng via B4 Relay
2026-07-02 22:03   ` Andrew Morton
2026-07-02 16:21 ` [PATCH v4 6/6] mm: hugetlb: Refactor out hugetlb_alloc_folio() Ackerley Tng via B4 Relay
2026-07-02 16:51 ` Zi Yan [this message]
2026-07-03  2:04   ` [PATCH v4 0/6] Open HugeTLB allocation routine for more generic use Qi Zheng
2026-07-02 22:12 ` Andrew Morton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5BCC635A-9CB2-42AF-B7CA-43886CF2BEC7@nvidia.com \
    --to=ziy@nvidia.com \
    --cc=ackerleytng@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=apopple@nvidia.com \
    --cc=byungchul@sk.com \
    --cc=david@kernel.org \
    --cc=djbw@kernel.org \
    --cc=fvdl@google.com \
    --cc=gourry@gourry.net \
    --cc=jgg@ziepe.ca \
    --cc=jiaqiyan@google.com \
    --cc=joshua.hahnjy@gmail.com \
    --cc=jthoughton@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=matthew.brost@intel.com \
    --cc=mhocko@kernel.org \
    --cc=michael.roth@amd.com \
    --cc=muchun.song@linux.dev \
    --cc=osalvador@suse.de \
    --cc=pasha.tatashin@soleen.com \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=pratyush@kernel.org \
    --cc=qi.zheng@linux.dev \
    --cc=rakie.kim@sk.com \
    --cc=rick.p.edgecombe@intel.com \
    --cc=rientjes@google.com \
    --cc=roman.gushchin@linux.dev \
    --cc=seanjc@google.com \
    --cc=shakeel.butt@linux.dev \
    --cc=shivankg@amd.com \
    --cc=vannapurve@google.com \
    --cc=yan.y.zhao@intel.com \
    --cc=ying.huang@linux.alibaba.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox