Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Lance Yang <lance.yang@linux.dev>
To: qi.zheng@linux.dev
Cc: muchun.song@linux.dev, osalvador@suse.de, david@kernel.org,
	akpm@linux-foundation.org, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, zhengqi.arch@bytedance.com
Subject: Re: [PATCH 5/5] mm: hugetlb: enable CMA allocation for PMD-sized pages
Date: Tue, 20 Oct 2026 17:16:53 +0800	[thread overview]
Message-ID: <20261020091653.14959-1-lance.yang@linux.dev> (raw)
In-Reply-To: <df6eee954b62f41d65c4d087d17a7a7cf60da791.1792136742.git.zhengqi.arch@bytedance.com>


On Fri, Oct 16, 2026 at 06:07:36PM +0800, Qi Zheng wrote:
>From: Qi Zheng <zhengqi.arch@bytedance.com>
[...]
>diff --git a/mm/hugetlb.c b/mm/hugetlb.c
>index 218fbaee6f7e5..8c00fd9d0658d 100644
>--- a/mm/hugetlb.c
>+++ b/mm/hugetlb.c
>@@ -1362,18 +1362,8 @@ static struct folio *dequeue_hugetlb_folio(struct hstate *h, gfp_t gfp_mask,
> static struct folio *alloc_gigantic_frozen_folio(int order, gfp_t gfp_mask,
> 		int nid, nodemask_t *nodemask)
> {
>-	struct folio *folio;
>-
>-	folio = hugetlb_cma_alloc_frozen_folio(order, gfp_mask, nid, nodemask);
>-	if (folio)
>-		return folio;
>-
>-	if (hugetlb_cma_exclusive_alloc(order))
>-		return NULL;
>-
>-	folio = (struct folio *)alloc_contig_frozen_pages(1 << order, gfp_mask,
>-							  nid, nodemask);
>-	return folio;
>+	return (struct folio *)alloc_contig_frozen_pages(1 << order, gfp_mask,
>+							 nid, nodemask);
> }
> #else /* !CONFIG_ARCH_HAS_GIGANTIC_PAGE || !CONFIG_CONTIG_ALLOC */
> static struct folio *alloc_gigantic_frozen_folio(int order, gfp_t gfp_mask, int nid,
>@@ -1849,11 +1839,18 @@ static struct folio *only_alloc_fresh_hugetlb_folio(struct hstate *h,
> 	if (nid == NUMA_NO_NODE)
> 		nid = numa_mem_id();
> 
>-	if (order_is_gigantic(order))
>-		folio = alloc_gigantic_frozen_folio(order, gfp_mask, nid, nmask);
>-	else
>-		folio = alloc_buddy_frozen_folio(order, gfp_mask, nid, nmask,
>-						 node_alloc_noretry);
>+	folio = hugetlb_cma_alloc_frozen_folio(order, gfp_mask, nid, nmask);
>+	if (!folio) {

Emm ... what about PF_MEMALLOC_PIN here?

If a FOLL_LONGTERM migration out of CMA needs a fresh hugetlb folio,
this can allocate another CMA folio as the target.

With HVO disabled, the old folio is freed back to CMA and can be picked
again again again.

I guess we'd keep migrating between CMA folios without ever completing
the pin ... even if pinnable buddy memory is available, no?

[...]

Cheers, Lance


  parent reply	other threads:[~2026-10-20  9:17 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-16 10:07 [PATCH 0/5] mm: hugetlb: add CMA support for PMD-sized page Qi Zheng
2026-10-16 10:07 ` [PATCH 1/5] mm: hugetlb: add explicit page size to hugetlb_cma Qi Zheng
2026-10-17 17:31   ` Jose A. Perez de Azpillaga
2026-10-16 10:07 ` [PATCH 2/5] mm: hugetlb: group CMA pool and reservation state Qi Zheng
2026-10-17 17:53   ` Jose A. Perez de Azpillaga
2026-10-16 10:07 ` [PATCH 3/5] mm: hugetlb: track CMA reservations by page order Qi Zheng
2026-10-17 18:41   ` Jose A. Perez de Azpillaga
2026-10-19  7:10     ` Qi Zheng
2026-10-16 10:07 ` [PATCH 4/5] mm: hugetlb: avoid recursive CMA allocation during migration Qi Zheng
2026-10-17 18:54   ` Jose A. Perez de Azpillaga
2026-10-19  7:17     ` Qi Zheng
2026-10-16 10:07 ` [PATCH 5/5] mm: hugetlb: enable CMA allocation for PMD-sized pages Qi Zheng
2026-10-17 19:07   ` Jose A. Perez de Azpillaga
2026-10-19  7:32     ` Qi Zheng
2026-10-20  9:16   ` Lance Yang [this message]
2026-10-20 10:23     ` Qi Zheng
2026-10-19  6:50 ` [PATCH 0/5] mm: hugetlb: add CMA support for PMD-sized page Muchun Song
2026-10-19  7:37   ` Qi Zheng
2026-10-19  7:50     ` Muchun Song
2026-10-19  8:20       ` Jose A. Perez de Azpillaga
2026-10-19  8:43         ` Muchun Song
2026-10-19  9:17           ` Jose A. Perez de Azpillaga
2026-10-19 12:18             ` David Hildenbrand (Arm)
2026-10-20  7:46               ` Qi Zheng

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=20261020091653.14959-1-lance.yang@linux.dev \
    --to=lance.yang@linux.dev \
    --cc=akpm@linux-foundation.org \
    --cc=david@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=muchun.song@linux.dev \
    --cc=osalvador@suse.de \
    --cc=qi.zheng@linux.dev \
    --cc=zhengqi.arch@bytedance.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