Hi, all, Should this patch go via mm tree or loongarch tree? If via mm tree, then Acked-by: Huacai Chen <chenhuacai@xxxxxxxxxxx> On Thu, Sep 29, 2022 at 7:23 PM Qi Zheng <zhengqi.arch@xxxxxxxxxxxxx> wrote: > > Currently, the implementation of update_mmu_tlb() is empty if > __HAVE_ARCH_UPDATE_MMU_TLB is not defined. Then if two threads > concurrently fault at the same page, the second thread that did > not win the race will give up and do nothing. In the LoongArch > architecture, this second thread will trigger another fault, > and only updates its local TLB. > > Instead of triggering another fault, it's better to implement > update_mmu_tlb() to directly update the local TLB of the second > thread. Just do it. > > Suggested-by: Bibo Mao <maobibo@xxxxxxxxxxx> > Signed-off-by: Qi Zheng <zhengqi.arch@xxxxxxxxxxxxx> > --- > arch/loongarch/include/asm/pgtable.h | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arch/loongarch/include/asm/pgtable.h b/arch/loongarch/include/asm/pgtable.h > index 8ea57e2f0e04..946704bee599 100644 > --- a/arch/loongarch/include/asm/pgtable.h > +++ b/arch/loongarch/include/asm/pgtable.h > @@ -412,6 +412,9 @@ static inline void update_mmu_cache(struct vm_area_struct *vma, > __update_tlb(vma, address, ptep); > } > > +#define __HAVE_ARCH_UPDATE_MMU_TLB > +#define update_mmu_tlb update_mmu_cache > + > static inline void update_mmu_cache_pmd(struct vm_area_struct *vma, > unsigned long address, pmd_t *pmdp) > { > -- > 2.20.1 > >