Re: [PATCH 15/22] mm: only initialise pt_share_count for user pgtables

From: David Hildenbrand (Arm)

Date: Tue Jul 21 2026 - 11:12:55 EST


On 7/14/26 16:04, Kevin Brodsky wrote:
> ptdesc_pmd_pts_init() initialises the pt_share_count ptdesc field.
> That field is only used for hugetlb tracking purposes, so there is
> no need to initialise it for kernel page tables. Skip the call for
> kernel page tables, like pmd_ptlock_init().
>
> From now on pagetable_*_ctor() and pagetable_dtor() do nothing for
> kernel page tables.
>
> Signed-off-by: Kevin Brodsky <kevin.brodsky@xxxxxxx>
> ---
> include/linux/mm.h | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index 94f0fb1c662a..b217ccbed5a3 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -3905,9 +3905,12 @@ static inline spinlock_t *pmd_lock(struct mm_struct *mm, pmd_t *pmd)
> static inline bool pagetable_pmd_ctor(struct mm_struct *mm,
> struct ptdesc *ptdesc)
> {
> - if (!mm_is_kernel(mm) && !pmd_ptlock_init(ptdesc))
> - return false;
> - ptdesc_pmd_pts_init(ptdesc);
> + if (!mm_is_kernel(mm)) {
> + if (!pmd_ptlock_init(ptdesc))
> + return false;
> + ptdesc_pmd_pts_init(ptdesc);
> + }
> +

I'd have said "the initialization is cheap, why bother", but we already do have
the mm_is_kernel() check in place, so

Acked-by: David Hildenbrand (Arm) <david@xxxxxxxxxx>

--
Cheers,

David