From: Will Deacon <will@kernel.org>
To: Wen Jiang <jiangwenxiaomi@gmail.com>
Cc: akpm@linux-foundation.org, catalin.marinas@arm.com,
linux-mm@kvack.org, urezki@gmail.com, Xueyuan.chen21@gmail.com,
ajd@linux.ibm.com, anshuman.khandual@arm.com, david@kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, rppt@kernel.org,
ryan.roberts@arm.com, dev.jain@arm.com, baohua@kernel.org,
Wen Jiang <jiangwen6@xiaomi.com>, Leo Yan <leo.yan@arm.com>
Subject: Re: [PATCH v7 1/7] arm64/hugetlb: Extend batching of multiple CONT_PTE in a single PTE setup
Date: Tue, 28 Jul 2026 13:02:54 +0100 [thread overview]
Message-ID: <amiabgyHSz3ZYY5k@willie-the-truck> (raw)
In-Reply-To: <20260715120813.3609949-2-jiangwen6@xiaomi.com>
On Wed, Jul 15, 2026 at 08:08:07PM +0800, Wen Jiang wrote:
> From: "Barry Song (Xiaomi)" <baohua@kernel.org>
>
> For sizes aligned to CONT_PTE_SIZE and smaller than PMD_SIZE,
> we can handle CONT_PTE_SIZE groups together.
>
> These additional sizes are mapping spans used by non-hugetlbfs(vmalloc)
> mm code, not new HugeTLB hstate sizes.
>
> Signed-off-by: Barry Song (Xiaomi) <baohua@kernel.org>
> Signed-off-by: Wen Jiang <jiangwen6@xiaomi.com>
> Tested-by: Xueyuan Chen <xueyuan.chen21@gmail.com>
> Tested-by: Leo Yan <leo.yan@arm.com>
> Reviewed-by: Dev Jain <dev.jain@arm.com>
> ---
> arch/arm64/mm/hugetlbpage.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/arch/arm64/mm/hugetlbpage.c b/arch/arm64/mm/hugetlbpage.c
> index a42c05cf56408..7ce159483a354 100644
> --- a/arch/arm64/mm/hugetlbpage.c
> +++ b/arch/arm64/mm/hugetlbpage.c
> @@ -94,6 +94,11 @@ static int find_num_contig(struct mm_struct *mm, unsigned long addr,
> return CONT_PTES;
> }
>
> +/*
> + * num_contig_ptes(), set_huge_pte_at() and arch_make_huge_pte() can be
> + * used by non-hugetlbfs(vmalloc) mm code to set multiple huge mappings
> + * at the PTE level.
> + */
> static inline int num_contig_ptes(unsigned long size, size_t *pgsize)
> {
> int contig_ptes = 1;
> @@ -110,6 +115,12 @@ static inline int num_contig_ptes(unsigned long size, size_t *pgsize)
> contig_ptes = CONT_PTES;
> break;
> default:
> + if (size > 0 && size < PMD_SIZE &&
> + IS_ALIGNED(size, CONT_PTE_SIZE)) {
> + *pgsize = PAGE_SIZE;
> + contig_ptes = size >> PAGE_SHIFT;
> + break;
> + }
Under which circumstances would you get a size of 0 here?
Given that you're relying on arch_vmap_pte_range_map_size() to give you
a well-formed size, why isn't if sufficient to check only the alignment?
> WARN_ON(!__hugetlb_valid_size(size));
I agree with David that it's messy having hugetlb tangled up in here.
It means this validity check is now going to miss some genuinely bogus
cases for the hugetlb path (as opposed to the vmalloc path).
Will
next prev parent reply other threads:[~2026-07-28 12:03 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-15 12:08 [PATCH v7 0/7] mm/vmalloc: Speed up ioremap, vmalloc and vmap with contiguous memory Wen Jiang
2026-07-15 12:08 ` [PATCH v7 1/7] arm64/hugetlb: Extend batching of multiple CONT_PTE in a single PTE setup Wen Jiang
2026-07-20 8:16 ` David Hildenbrand (Arm)
2026-07-21 5:31 ` Barry Song
2026-07-28 12:02 ` Will Deacon [this message]
2026-07-28 21:47 ` Barry Song
2026-07-15 12:08 ` [PATCH v7 2/7] arm64/vmalloc: Allow arch_vmap_pte_range_map_size to batch multiple CONT_PTE Wen Jiang
2026-07-21 18:17 ` David Carlier
2026-07-28 12:08 ` Will Deacon
2026-07-15 12:08 ` [PATCH v7 3/7] mm/vmalloc: Extract vmap_set_ptes() to consolidate PTE mapping logic Wen Jiang
2026-07-15 12:08 ` [PATCH v7 4/7] mm/vmalloc: Extend page table walk to support larger page_shift sizes and eliminate page table rewalk Wen Jiang
2026-07-15 12:08 ` [PATCH v7 5/7] mm/vmalloc: Extract vm_shift() to consolidate mapping shift selection Wen Jiang
2026-07-16 10:12 ` David Hildenbrand (Arm)
2026-07-20 7:50 ` Dev Jain
2026-07-15 12:08 ` [PATCH v7 6/7] mm/vmalloc: map contiguous pages in batches for vmap() if possible Wen Jiang
2026-07-16 10:57 ` David Hildenbrand (Arm)
2026-07-20 7:50 ` Dev Jain
2026-07-20 16:20 ` Wen Jiang
2026-07-22 8:58 ` Wen Jiang
2026-07-15 12:08 ` [PATCH v7 7/7] mm/vmalloc: align vm_area so vmap() can batch mappings Wen Jiang
2026-07-15 18:37 ` [PATCH v7 0/7] mm/vmalloc: Speed up ioremap, vmalloc and vmap with contiguous memory 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=amiabgyHSz3ZYY5k@willie-the-truck \
--to=will@kernel.org \
--cc=Xueyuan.chen21@gmail.com \
--cc=ajd@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=anshuman.khandual@arm.com \
--cc=baohua@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=david@kernel.org \
--cc=dev.jain@arm.com \
--cc=jiangwen6@xiaomi.com \
--cc=jiangwenxiaomi@gmail.com \
--cc=leo.yan@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=rppt@kernel.org \
--cc=ryan.roberts@arm.com \
--cc=urezki@gmail.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