> -----Original Message-----
> From: Catalin Marinas <[email protected]>
> Sent: 2019年9月24日 0:18
> To: Justin He (Arm Technology China) <[email protected]>
> Cc: Will Deacon <[email protected]>; Mark Rutland
> <[email protected]>; James Morse <[email protected]>; Marc
> Zyngier <[email protected]>; Matthew Wilcox <[email protected]>; Kirill A.
> Shutemov <[email protected]>; linux-arm-
> [email protected]; [email protected]; linux-
> [email protected]; Suzuki Poulose <[email protected]>; Punit
> Agrawal <[email protected]>; Anshuman Khandual
> <[email protected]>; Alex Van Brunt
> <[email protected]>; Robin Murphy <[email protected]>;
> Thomas Gleixner <[email protected]>; Andrew Morton <akpm@linux-
> foundation.org>; Jérôme Glisse <[email protected]>; Ralph Campbell
> <[email protected]>; [email protected]; Kaly Xin (Arm Technology
> China) <[email protected]>; nd <[email protected]>
> Subject: Re: [PATCH v8 2/3] arm64: mm: implement
> arch_faults_on_old_pte() on arm64
>
> On Sat, Sep 21, 2019 at 09:50:53PM +0800, Jia He wrote:
> > diff --git a/arch/arm64/include/asm/pgtable.h
> b/arch/arm64/include/asm/pgtable.h
> > index e09760ece844..4a9939615e41 100644
> > --- a/arch/arm64/include/asm/pgtable.h
> > +++ b/arch/arm64/include/asm/pgtable.h
> > @@ -868,6 +868,18 @@ static inline void update_mmu_cache(struct
> vm_area_struct *vma,
> > #define phys_to_ttbr(addr) (addr)
> > #endif
> >
> > +/*
> > + * On arm64 without hardware Access Flag, copying fromuser will fail
> because
> ^^^^^^^^
> from user
>
Ok
> > + * the pte is old and cannot be marked young. So we always end up with
> zeroed
> > + * page after fork() + CoW for pfn mappings. we don't always have a
> ^^
> We
>
Ok
> > + * hardware-managed access flag on arm64.
> > + */
> > +static inline bool arch_faults_on_old_pte(void)
> > +{
> > + return !cpu_has_hw_af();
>
> I saw an early incarnation of your patch having a
> WARN_ON(preemptible()). I think we need this back just in case this
> function will be used elsewhere in the future.
Okay
--
Cheers,
Justin (Jia He)
>
> > +}
> > +#define arch_faults_on_old_pte arch_faults_on_old_pte
>
> Otherwise,
>
> Reviewed-by: Catalin Marinas <[email protected]>