Re: [PATCH v2] mm: fix double page fault on arm64 if PTE_AF is cleared

From: Catalin Marinas
Date: Tue Sep 10 2019 - 05:09:11 EST


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