Previously all pages, accessed once are added. Improve it by adding those that are accessed second time. This logic is closer to current NUMAB implementation of spotting hot pages. Signed-off-by: Raghavendra K T --- mm/kscand.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mm/kscand.c b/mm/kscand.c index 1d883d411664..7552ce32beea 100644 --- a/mm/kscand.c +++ b/mm/kscand.c @@ -196,6 +196,7 @@ static int hot_vma_idle_pte_entry(pte_t *pte, struct kscand_migrate_info *info; struct kscand_scanctrl *scanctrl = walk->private; int srcnid; + bool prev_idle; scanctrl->address = addr; pte_t pteval = ptep_get(pte); @@ -219,6 +220,7 @@ static int hot_vma_idle_pte_entry(pte_t *pte, folio_put(folio); return 0; } + prev_idle = folio_test_idle(folio); folio_set_idle(folio); page_idle_clear_pte_refs(page, pte, walk); srcnid = folio_nid(folio); @@ -233,7 +235,7 @@ static int hot_vma_idle_pte_entry(pte_t *pte, folio_put(folio); return 0; } - if (!folio_test_idle(folio) && + if (!folio_test_idle(folio) && !prev_idle && (folio_test_young(folio) || folio_test_referenced(folio))) { /* XXX: Leaking memory. TBD: consume info */ -- 2.34.1