Messages in this thread | | | Date | Wed, 27 Apr 2022 11:01:05 +0530 | Subject | Re: [PATCH v10 07/14] mm: multi-gen LRU: exploit locality in rmap | From | Aneesh Kumar K V <> |
| |
On 4/27/22 10:08 AM, Yu Zhao wrote: > On Tue, Apr 26, 2022 at 10:33 PM Aneesh Kumar K.V > <aneesh.kumar@linux.ibm.com> wrote: >> >> Yu Zhao <yuzhao@google.com> writes: >> >> .... >> >> diff --git a/mm/rmap.c b/mm/rmap.c >>> index fedb82371efe..7cb7ef29088a 100644 >>> --- a/mm/rmap.c >>> +++ b/mm/rmap.c >>> @@ -73,6 +73,7 @@ >>> #include <linux/page_idle.h> >>> #include <linux/memremap.h> >>> #include <linux/userfaultfd_k.h> >>> +#include <linux/mm_inline.h> >>> >>> #include <asm/tlbflush.h> >>> >>> @@ -821,6 +822,12 @@ static bool folio_referenced_one(struct folio *folio, >>> } >>> >>> if (pvmw.pte) { >>> + if (lru_gen_enabled() && pte_young(*pvmw.pte) && >>> + !(vma->vm_flags & (VM_SEQ_READ | VM_RAND_READ))) { >>> + lru_gen_look_around(&pvmw); >>> + referenced++; >>> + } >> >> Is it required to update referenced here? we do that below after >> clearing the young bit. Or is the goal to identify whether we found any >> young pte around? > > referenced++ is needed because lru_gen_look_around() also clears the > young bit in pvmw.pte. And ptep_clear_flush_young_notify() will return > false unless mmu notifier returns true.
should we then use a mmu notifier variant of clear_young in lru_gen_look_around() ?
-aneesh
| |