[PATCH 8/9] mm/mglru: report hot PUDs from the rmap feedback path
Baoquan He <[email protected]>
| Newsgroups | org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
lru_gen_look_around() marks the PMD of a young PTE found during the eviction rmap walk, feeding hot regions back to the aging walker. Mark the covering PUD as well, so regions whose hotness is only observed by eviction will be re-scanned. Signed-off-by: Baoquan He <[email protected]> --- mm/vmscan.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mm/vmscan.c b/mm/vmscan.c index 7a6c15be1c2a..cc41d3692bd5 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -4470,8 +4470,14 @@ bool lru_gen_look_around(struct page_vma_mapped_walk *pvmw, unsigned int nr) lazy_mmu_mode_disable(); /* feedback from rmap walkers to page table walkers */ - if (mm_state && suitable_to_scan(i, young)) + if (mm_state && suitable_to_scan(i, young)) { + /* the PUD entry covering the young PTEs scanned above */ + pud_t *pud_p = pud_offset(p4d_offset(pgd_offset(vma->vm_mm, pvmw->address), + pvmw->address), pvmw->address); + update_pmd_bloom_filter(mm_state, max_seq, pvmw->pmd); + update_pud_bloom_filter(mm_state, max_seq, pud_p); + } mem_cgroup_put(memcg); -- 2.54.0