Re: [PATCH 2/2] arm64/hugetlb: Implement arm64 specific huge_ptep_get()

From: Muchun Song
Date: Tue May 10 2022 - 12:05:07 EST


On Tue, May 10, 2022 at 07:12:53PM +0800, Baolin Wang wrote:
> Now we use huge_ptep_get() to get the pte value of a hugetlb page,
> however it will only return one specific pte value for the CONT-PTE
> or CONT-PMD size hugetlb on ARM64 system, which can contain seravel
> continuous pte or pmd entries with same page table attributes. And it
> will not take into account the subpages' dirty or young bits of a
> CONT-PTE/PMD size hugetlb page.
>
> So the huge_ptep_get() is inconsistent with huge_ptep_get_and_clear(),
> which already takes account the dirty or young bits for any subpages
> in this CONT-PTE/PMD size hugetlb [1]. Meanwhile we can miss dirty or
> young flags statistics for hugetlb pages with current huge_ptep_get(),
> such as the gather_hugetlb_stats() function, and CONT-PTE/PMD hugetlb
> monitoring with DAMON.
>
> Thus define an ARM64 specific huge_ptep_get() implementation, that will
> take into account any subpages' dirty or young bits for CONT-PTE/PMD size
> hugetlb page, for those functions that want to check the dirty and young
> flags of a hugetlb page.
>
> [1] https://lore.kernel.org/linux-mm/85bd80b4-b4fd-0d3f-a2e5-149559f2f387@xxxxxxxxxx/
>
> Suggested-by: Muchun Song <songmuchun@xxxxxxxxxxxxx>
> Signed-off-by: Baolin Wang <baolin.wang@xxxxxxxxxxxxxxxxx>

LGTM. Thanks for your work.

Reviewed-by: Muchun Song <songmuchun@xxxxxxxxxxxxx>