Message ID | 20220929112318.32393-2-zhengqi.arch@bytedance.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | use update_mmu_tlb() on the second thread | expand |
On 29.09.22 13:23, Qi Zheng wrote: > As message in commit 7df676974359 ("mm/memory.c: Update local TLB > if PTE entry exists") said, we should update local TLB only on the > second thread. So in the do_anonymous_page() here, we should use > update_mmu_tlb() instead of update_mmu_cache() on the second thread. > Maybe mention here "This only affects performance, but not correctness." Acked-by: David Hildenbrand <david@redhat.com> > Signed-off-by: Qi Zheng <zhengqi.arch@bytedance.com> > Reviewed-by: Muchun Song <songmuchun@bytedance.com> > --- > mm/memory.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/memory.c b/mm/memory.c > index 118e5f023597..9e11c783ba0e 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -4122,7 +4122,7 @@ static vm_fault_t do_anonymous_page(struct vm_fault *vmf) > vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd, vmf->address, > &vmf->ptl); > if (!pte_none(*vmf->pte)) { > - update_mmu_cache(vma, vmf->address, vmf->pte); > + update_mmu_tlb(vma, vmf->address, vmf->pte); > goto release; > } >
On 2022/9/30 16:30, David Hildenbrand wrote: > On 29.09.22 13:23, Qi Zheng wrote: >> As message in commit 7df676974359 ("mm/memory.c: Update local TLB >> if PTE entry exists") said, we should update local TLB only on the >> second thread. So in the do_anonymous_page() here, we should use >> update_mmu_tlb() instead of update_mmu_cache() on the second thread. >> > > Maybe mention here "This only affects performance, but not correctness." Oh, this is better. Hi Andrew, do I need to resend the v4? > > Acked-by: David Hildenbrand <david@redhat.com> Thanks. > >> Signed-off-by: Qi Zheng <zhengqi.arch@bytedance.com> >> Reviewed-by: Muchun Song <songmuchun@bytedance.com> >> --- >> mm/memory.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/mm/memory.c b/mm/memory.c >> index 118e5f023597..9e11c783ba0e 100644 >> --- a/mm/memory.c >> +++ b/mm/memory.c >> @@ -4122,7 +4122,7 @@ static vm_fault_t do_anonymous_page(struct >> vm_fault *vmf) >> vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd, vmf->address, >> &vmf->ptl); >> if (!pte_none(*vmf->pte)) { >> - update_mmu_cache(vma, vmf->address, vmf->pte); >> + update_mmu_tlb(vma, vmf->address, vmf->pte); >> goto release; >> } >
On 30.09.22 10:43, Qi Zheng wrote: > > > On 2022/9/30 16:30, David Hildenbrand wrote: >> On 29.09.22 13:23, Qi Zheng wrote: >>> As message in commit 7df676974359 ("mm/memory.c: Update local TLB >>> if PTE entry exists") said, we should update local TLB only on the >>> second thread. So in the do_anonymous_page() here, we should use >>> update_mmu_tlb() instead of update_mmu_cache() on the second thread. >>> >> >> Maybe mention here "This only affects performance, but not correctness." > > Oh, this is better. Hi Andrew, do I need to resend the v4? > I assume he can squash it, most probably no need to resend. :)
On 2022/9/30 16:44, David Hildenbrand wrote: > On 30.09.22 10:43, Qi Zheng wrote: >> >> >> On 2022/9/30 16:30, David Hildenbrand wrote: >>> On 29.09.22 13:23, Qi Zheng wrote: >>>> As message in commit 7df676974359 ("mm/memory.c: Update local TLB >>>> if PTE entry exists") said, we should update local TLB only on the >>>> second thread. So in the do_anonymous_page() here, we should use >>>> update_mmu_tlb() instead of update_mmu_cache() on the second thread. >>>> >>> >>> Maybe mention here "This only affects performance, but not correctness." >> >> Oh, this is better. Hi Andrew, do I need to resend the v4? >> > > I assume he can squash it, most probably no need to resend. :) Got it. Both are fine for me. :) >
On Fri, 30 Sep 2022 10:44:21 +0200 David Hildenbrand <david@redhat.com> wrote: > > Oh, this is better. Hi Andrew, do I need to resend the v4? > > > > I assume he can squash it, most probably no need to resend. :) From: Qi Zheng <zhengqi.arch@bytedance.com> Subject: mm: use update_mmu_tlb() on the second thread Date: Thu, 29 Sep 2022 19:23:17 +0800 As message in commit 7df676974359 ("mm/memory.c: Update local TLB if PTE entry exists") said, we should update local TLB only on the second thread. So in the do_anonymous_page() here, we should use update_mmu_tlb() instead of update_mmu_cache() on the second thread. As David pointed out, this is a performance improvement, not a correctness fix. Link: https://lkml.kernel.org/r/20220929112318.32393-2-zhengqi.arch@bytedance.com Signed-off-by: Qi Zheng <zhengqi.arch@bytedance.com> Reviewed-by: Muchun Song <songmuchun@bytedance.com> Acked-by: David Hildenbrand <david@redhat.com> Cc: Bibo Mao <maobibo@loongson.cn> Cc: Chris Zankel <chris@zankel.net> Cc: Huacai Chen <chenhuacai@loongson.cn> Cc: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- mm/memory.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/mm/memory.c~mm-use-update_mmu_tlb-on-the-second-thread +++ a/mm/memory.c @@ -4136,7 +4136,7 @@ static vm_fault_t do_anonymous_page(stru vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd, vmf->address, &vmf->ptl); if (!pte_none(*vmf->pte)) { - update_mmu_cache(vma, vmf->address, vmf->pte); + update_mmu_tlb(vma, vmf->address, vmf->pte); goto release; }
On 2022/10/1 06:31, Andrew Morton wrote: > On Fri, 30 Sep 2022 10:44:21 +0200 David Hildenbrand <david@redhat.com> wrote: > >>> Oh, this is better. Hi Andrew, do I need to resend the v4? >>> >> >> I assume he can squash it, most probably no need to resend. :) > > > From: Qi Zheng <zhengqi.arch@bytedance.com> > Subject: mm: use update_mmu_tlb() on the second thread > Date: Thu, 29 Sep 2022 19:23:17 +0800 > > As message in commit 7df676974359 ("mm/memory.c: Update local TLB if PTE > entry exists") said, we should update local TLB only on the second thread. > So in the do_anonymous_page() here, we should use update_mmu_tlb() > instead of update_mmu_cache() on the second thread. > > As David pointed out, this is a performance improvement, not a > correctness fix. > > Link: https://lkml.kernel.org/r/20220929112318.32393-2-zhengqi.arch@bytedance.com > Signed-off-by: Qi Zheng <zhengqi.arch@bytedance.com> > Reviewed-by: Muchun Song <songmuchun@bytedance.com> > Acked-by: David Hildenbrand <david@redhat.com> > Cc: Bibo Mao <maobibo@loongson.cn> > Cc: Chris Zankel <chris@zankel.net> > Cc: Huacai Chen <chenhuacai@loongson.cn> > Cc: Max Filippov <jcmvbkbc@gmail.com> > Signed-off-by: Andrew Morton <akpm@linux-foundation.org> > --- > > mm/memory.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > --- a/mm/memory.c~mm-use-update_mmu_tlb-on-the-second-thread > +++ a/mm/memory.c > @@ -4136,7 +4136,7 @@ static vm_fault_t do_anonymous_page(stru > vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd, vmf->address, > &vmf->ptl); > if (!pte_none(*vmf->pte)) { > - update_mmu_cache(vma, vmf->address, vmf->pte); > + update_mmu_tlb(vma, vmf->address, vmf->pte); > goto release; > } > > _ Thank you very much! :) >
diff --git a/mm/memory.c b/mm/memory.c index 118e5f023597..9e11c783ba0e 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -4122,7 +4122,7 @@ static vm_fault_t do_anonymous_page(struct vm_fault *vmf) vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd, vmf->address, &vmf->ptl); if (!pte_none(*vmf->pte)) { - update_mmu_cache(vma, vmf->address, vmf->pte); + update_mmu_tlb(vma, vmf->address, vmf->pte); goto release; }