On Thu, 18 Aug 2022 15:37:43 +0800 Baolin Wang <baolin.wang@xxxxxxxxxxxxxxxxx> wrote:
The pmd_huge() is used to validate if the pmd entry is mapped by a huge
page, also including the case of non-present (migration or hwpoisoned)
pmd entry on arm64 or x86 architectures. That means the pmd_pfn() can
not get the correct pfn number for the non-present pmd entry, which
will cause damon_get_page() to get an incorrect page struct (also
may be NULL by pfn_to_online_page()) to make the access statistics
incorrect.
Moreover it does not make sense that we still waste time to get the
page of the non-present entry, just treat it as not-accessed and skip it,
that keeps consistent with non-present pte level entry.
Thus adding a pmd entry present validation to fix above issues.
Do we have a Fixes: for this?
What are the user-visible runtime effects of the bug? "make the access
statistics incorrect" is rather vague.
Do we feel that a cc:stable is warranted?