On 06/20/22 10:34, Baolin Wang wrote: > The huge_ptep_set_access_flags() can not make the huge pte old according > to the discussion [1], that means we will always mornitor the young state > of the hugetlb though we stopped accessing the hugetlb, as a result DAMON > will get inaccurate accessing statistics. > > So changing to use set_huge_pte_at() to make the huge pte old to fix this > issue. > > [1] https://lore.kernel.org/all/Yqy97gXI4Nqb7dYo@xxxxxxx/ > > Fixes: 49f4203aae06 ("mm/damon: add access checking for hugetlb pages") > Signed-off-by: Baolin Wang <baolin.wang@xxxxxxxxxxxxxxxxx> Thanks, Acked-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx> -- Mike Kravetz > --- > mm/damon/vaddr.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/mm/damon/vaddr.c b/mm/damon/vaddr.c > index 5767be72c181..d24148a8149f 100644 > --- a/mm/damon/vaddr.c > +++ b/mm/damon/vaddr.c > @@ -337,8 +337,7 @@ static void damon_hugetlb_mkold(pte_t *pte, struct mm_struct *mm, > if (pte_young(entry)) { > referenced = true; > entry = pte_mkold(entry); > - huge_ptep_set_access_flags(vma, addr, pte, entry, > - vma->vm_flags & VM_WRITE); > + set_huge_pte_at(mm, addr, pte, entry); > } > > #ifdef CONFIG_MMU_NOTIFIER > -- > 2.27.0 >