Messages in this thread | | | From | Lance Yang <> | Subject | Re: [PATCH v7 1/3] mm/madvise: introduce clear_young_dirty_ptes() batch helper | Date | Wed, 17 Apr 2024 13:04:26 +0800 |
| |
Hey David, Ryan,
How about this change?
static inline void clear_young_dirty_ptes(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep, unsigned int nr, cydp_t flags) { if (flags == CYDP_CLEAR_YOUNG) { for (;;) { ptep_test_and_clear_young(vma, addr, ptep); if (--nr == 0) break; ptep++; addr += PAGE_SIZE; } return; }
pte_t pte;
for (;;) { pte = ptep_get_and_clear(vma->vm_mm, addr, ptep);
if (flags & CYDP_CLEAR_YOUNG) pte = pte_mkold(pte); if (flags & CYDP_CLEAR_DIRTY) pte = pte_mkclean(pte);
if (--nr == 0) break; ptep++; addr += PAGE_SIZE; } }
Thanks, Lance
| |