On Mon, Sep 09, 2019 at 02:27:12PM -0700, Matthew Wilcox wrote: > On Fri, Sep 06, 2019 at 09:57:47PM +0800, Jia He wrote: > > + if (!pte_young(vmf->orig_pte)) { > > + entry = pte_mkyoung(vmf->orig_pte); > > + if (ptep_set_access_flags(vmf->vma, vmf->address, > > + vmf->pte, entry, 0)) > > + update_mmu_cache(vmf->vma, vmf->address, > > + vmf->pte); > > + } > > + > > Oh, btw, why call update_mmu_cache() here? All you've done is changed > the 'accessed' bit. What is any architecture supposed to do in response > to this? For arm64 and x86 that's a no-op but an architecture with software TLBs may preload them to avoid a subsequent fault on access after the pte was made young. -- Catalin