From: Uladzislau Rezki <urezki@gmail.com>
To: Wen Jiang <jiangwenxiaomi@gmail.com>
Cc: Uladzislau Rezki <urezki@gmail.com>,
akpm@linux-foundation.org, catalin.marinas@arm.com,
linux-mm@kvack.org, will@kernel.org, Xueyuan.chen21@gmail.com,
ajd@linux.ibm.com, anshuman.khandual@arm.com, baohua@kernel.org,
chleroy@kernel.org, david@kernel.org, dev.jain@arm.com,
jiangwen6@xiaomi.com, leo.yan@arm.com,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
maddy@linux.ibm.com, mpe@ellerman.id.au, npiggin@gmail.com,
rppt@kernel.org, ryan.roberts@arm.com
Subject: Re: [PATCH v9 07/10] mm/vmalloc: extend page table walk to support larger page_shift sizes and eliminate page table rewalk
Date: Thu, 1 Oct 2026 17:52:46 +0200 [thread overview]
Message-ID: <ar6BzubFrn46vuTu@milan> (raw)
In-Reply-To: <CAHKocdH-NeWYJBrCVfGctuDyh=D4a2YrzUf1VxB3cG7Di-EAMw@mail.gmail.com>
> > > diff --git a/mm/vmalloc.c b/mm/vmalloc.c
> > > index d475e52110e4a..6e0dec73107a7 100644
> > > --- a/mm/vmalloc.c
> > > +++ b/mm/vmalloc.c
> > > @@ -558,8 +558,10 @@ void vunmap_range(unsigned long addr, unsigned long end)
> > >
> > > static int vmap_pages_pte_range(pmd_t *pmd, unsigned long addr,
> > > unsigned long end, pgprot_t prot, struct page **pages, int *nr,
> > > - pgtbl_mod_mask *mask)
> > > + pgtbl_mod_mask *mask, unsigned int shift)
> > > {
> > > + unsigned long pfn, size;
> > > + unsigned int steps;
> > > int err = 0;
> > > pte_t *pte;
> > >
> > > @@ -590,9 +592,10 @@ static int vmap_pages_pte_range(pmd_t *pmd, unsigned long addr,
> > > break;
> > > }
> > >
> > > - set_pte_at(&init_mm, addr, pte, mk_pte(page, prot));
> > > - (*nr)++;
> > > - } while (pte++, addr += PAGE_SIZE, addr != end);
> > > + pfn = page_to_pfn(page);
> > > + size = vmap_set_ptes(pte, addr, end, pfn, prot, shift);
> > > + steps = PFN_DOWN(size);
> > > + } while (pte += steps, *nr += steps, addr += size, addr != end);
> > >
> > nr_mapped_pages?
> >
>
> As noted in the patch 6 reply, I'll rename steps to nr_pages here as well.
>
Thank you!
> > > +
> > > + if (vmap_try_huge_pmd(pmd, addr, next, phys_addr, prot, shift)) {
> > > + *mask |= PGTBL_PMD_MODIFIED;
> > > + *nr += 1 << (PMD_SHIFT - PAGE_SHIFT);
> > >
> > *nr += 1 << (PMD_SHIFT - PAGE_SHIFT); ---> *nr += 1U << (PMD_SHIFT - PAGE_SHIFT);
> > as it used to be?
> >
>
> Agreed, I'll use 1U.
>
Thank you. With noted modifications:
Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
> > >
> > This is not about this patch but probably on that WARN_ON we should bail out
> > early.
> >
>
> I'll send a separate cleanup patch changing it to:
>
> if (WARN_ON_ONCE(page_shift < PAGE_SHIFT))
> return -EINVAL;
>
Sounds good.
--
Uladzislau Rezki
next prev parent reply other threads:[~2026-10-01 15:52 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-23 6:28 [PATCH v9 00/10] mm/vmalloc: Speed up ioremap, vmalloc and vmap with contiguous memory Wen Jiang
2026-09-23 6:28 ` [PATCH v9 01/10] arm64/mm: add pte_set_huge() and pte_clear_huge() Wen Jiang
2026-09-23 21:30 ` Barry Song
2026-09-28 2:42 ` Wen Jiang
2026-09-23 6:28 ` [PATCH v9 02/10] powerpc/8xx: add pte_set_huge() Wen Jiang
2026-09-23 6:28 ` [PATCH v9 03/10] mm/vmalloc: use pte_set_huge()/pte_clear_huge() for PTE-level block mappings Wen Jiang
2026-09-23 21:38 ` Barry Song
2026-09-23 21:57 ` Christophe Leroy (CS GROUP)
2026-09-29 2:21 ` Wen Jiang
2026-09-23 6:28 ` [PATCH v9 04/10] arm64/hugetlb: drop the init_mm special case in clear_flush() Wen Jiang
2026-09-23 21:23 ` Barry Song
2026-09-23 6:28 ` [PATCH v9 05/10] arm64/vmalloc: allow arch_vmap_pte_range_map_size() to batch multiple CONT_PTE Wen Jiang
2026-09-30 15:37 ` Uladzislau Rezki
2026-10-01 7:55 ` Wen Jiang
2026-10-01 15:56 ` Uladzislau Rezki
2026-09-23 6:28 ` [PATCH v9 06/10] mm/vmalloc: extract vmap_set_ptes() to consolidate PTE mapping logic Wen Jiang
2026-09-30 14:39 ` Uladzislau Rezki
2026-10-01 7:58 ` Wen Jiang
2026-10-01 15:54 ` Uladzislau Rezki
2026-09-23 6:28 ` [PATCH v9 07/10] mm/vmalloc: extend page table walk to support larger page_shift sizes and eliminate page table rewalk Wen Jiang
2026-09-30 15:16 ` Uladzislau Rezki
2026-10-01 8:02 ` Wen Jiang
2026-10-01 15:52 ` Uladzislau Rezki [this message]
2026-09-23 6:28 ` [PATCH v9 08/10] mm/vmalloc: extract vm_shift() to consolidate mapping shift selection Wen Jiang
2026-09-30 14:46 ` Uladzislau Rezki
2026-09-23 6:28 ` [PATCH v9 09/10] mm/vmalloc: map contiguous pages in batches for vmap() if possible Wen Jiang
2026-09-30 15:05 ` Uladzislau Rezki
2026-10-01 8:09 ` Wen Jiang
2026-10-01 15:48 ` Uladzislau Rezki
2026-09-23 6:28 ` [PATCH v9 10/10] mm/vmalloc: align vm_area so vmap() can batch mappings Wen Jiang
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=ar6BzubFrn46vuTu@milan \
--to=urezki@gmail.com \
--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=chleroy@kernel.org \
--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=linuxppc-dev@lists.ozlabs.org \
--cc=maddy@linux.ibm.com \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
--cc=rppt@kernel.org \
--cc=ryan.roberts@arm.com \
--cc=will@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.