[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b763a569-260f-4a1f-8fe7-9c0241ef8540@lucifer.local>
Date: Wed, 10 Dec 2025 11:24:12 +0000
From: Lorenzo Stoakes <lorenzo.stoakes@...cle.com>
To: "David Hildenbrand (Red Hat)" <david@...nel.org>
Cc: linux-kernel@...r.kernel.org, linux-arch@...r.kernel.org,
linux-mm@...ck.org, Will Deacon <will@...nel.org>,
"Aneesh Kumar K.V" <aneesh.kumar@...nel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Nick Piggin <npiggin@...il.com>, Peter Zijlstra <peterz@...radead.org>,
Arnd Bergmann <arnd@...db.de>, Muchun Song <muchun.song@...ux.dev>,
Oscar Salvador <osalvador@...e.de>,
"Liam R. Howlett" <Liam.Howlett@...cle.com>,
Vlastimil Babka <vbabka@...e.cz>, Jann Horn <jannh@...gle.com>,
Pedro Falcato <pfalcato@...e.de>, Rik van Riel <riel@...riel.com>,
Harry Yoo <harry.yoo@...cle.com>,
Laurence Oberman <loberman@...hat.com>,
Prakash Sangappa <prakash.sangappa@...cle.com>,
Nadav Amit <nadav.amit@...il.com>, Liu Shixin <liushixin2@...wei.com>
Subject: Re: [PATCH v1 3/4] mm/rmap: fix two comments related to
huge_pmd_unshare()
On Fri, Dec 05, 2025 at 10:35:57PM +0100, David Hildenbrand (Red Hat) wrote:
> PMD page table unsharing no longer touches the refcount of a PMD page
> table. Also, it is not about dropping the refcount of a "PMD page" but
> the "PMD page table".
>
> Let's just simplify by saying that the PMD page table was unmapped,
> consequently also unmapping the folio that was mapped into this page.
>
> This code should be deduplicated in the future.
>
> Fixes: 59d9094df3d7 ("mm: hugetlb: independent PMD page table shared count")
> Cc: Liu Shixin <liushixin2@...wei.com>
> Signed-off-by: David Hildenbrand (Red Hat) <david@...nel.org>
LGTM, so:
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@...cle.com>
> ---
> mm/rmap.c | 20 ++++----------------
> 1 file changed, 4 insertions(+), 16 deletions(-)
>
> diff --git a/mm/rmap.c b/mm/rmap.c
> index f955f02d570ed..748f48727a162 100644
> --- a/mm/rmap.c
> +++ b/mm/rmap.c
> @@ -2016,14 +2016,8 @@ static bool try_to_unmap_one(struct folio *folio, struct vm_area_struct *vma,
> flush_tlb_range(vma,
> range.start, range.end);
> /*
> - * The ref count of the PMD page was
> - * dropped which is part of the way map
> - * counting is done for shared PMDs.
> - * Return 'true' here. When there is
> - * no other sharing, huge_pmd_unshare
> - * returns false and we will unmap the
> - * actual page and drop map count
> - * to zero.
> + * The PMD table was unmapped,
> + * consequently unmapping the folio.
> */
> goto walk_done;
> }
> @@ -2416,14 +2410,8 @@ static bool try_to_migrate_one(struct folio *folio, struct vm_area_struct *vma,
> range.start, range.end);
>
> /*
> - * The ref count of the PMD page was
> - * dropped which is part of the way map
> - * counting is done for shared PMDs.
> - * Return 'true' here. When there is
> - * no other sharing, huge_pmd_unshare
> - * returns false and we will unmap the
> - * actual page and drop map count
> - * to zero.
> + * The PMD table was unmapped,
> + * consequently unmapping the folio.
> */
> page_vma_mapped_walk_done(&pvmw);
> break;
> --
> 2.52.0
>
Powered by blists - more mailing lists