mm: khugepaged: better comments for anon vma check in hugepage_vma_revalidate
authorYang Shi <shy828301@gmail.com>
Thu, 16 Jun 2022 17:48:36 +0000 (10:48 -0700)
committerakpm <akpm@linux-foundation.org>
Mon, 18 Jul 2022 00:14:32 +0000 (17:14 -0700)
The hugepage_vma_revalidate() needs to check if the vma is still anonymous
vma or not since the address may be unmapped then remapped to file before
khugepaged reaquired the mmap_lock.

The old comment is not quite helpful, elaborate this with better comment.

Link: https://lkml.kernel.org/r/20220616174840.1202070-4-shy828301@gmail.com
Signed-off-by: Yang Shi <shy828301@gmail.com>
Reviewed-by: Zach O'Keefe <zokeefe@google.com>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Miaohe Lin <linmiaohe@huawei.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/khugepaged.c

index c7e2213..67e144e 100644 (file)
@@ -958,7 +958,13 @@ static int hugepage_vma_revalidate(struct mm_struct *mm, unsigned long address,
                return SCAN_ADDRESS_RANGE;
        if (!hugepage_vma_check(vma, vma->vm_flags))
                return SCAN_VMA_CHECK;
-       /* Anon VMA expected */
+       /*
+        * Anon VMA expected, the address may be unmapped then
+        * remapped to file after khugepaged reaquired the mmap_lock.
+        *
+        * hugepage_vma_check may return true for qualified file
+        * vmas.
+        */
        if (!vma->anon_vma || !vma_is_anonymous(vma))
                return SCAN_VMA_CHECK;
        return 0;