Re: [PATCH] MIPS: Do not flush tlb when setting pmd entry

From: Thomas Bogendoerfer
Date: Mon Jun 22 2020 - 11:51:22 EST


On Sat, Jun 20, 2020 at 11:47:35AM +0800, maobibo wrote:
>
>
> On 06/17/2020 07:14 PM, Thomas Bogendoerfer wrote:
> > On Tue, Jun 16, 2020 at 06:34:21PM +0800, maobibo wrote:
> >>
> >>
> >> On 06/15/2020 06:14 PM, Thomas Bogendoerfer wrote:
> >>> On Wed, Jun 03, 2020 at 05:42:13PM +0800, Bibo Mao wrote:
> >>>> Function set_pmd_at is to set pmd entry, if tlb entry need to
> >>>> be flushed, there exists pmdp_huge_clear_flush alike function
> >>>> before set_pmd_at is called. So it is not necessary to call
> >>>> flush_tlb_all in this function.
> >>>
> >>> have you checked all set_pmd_at() calls ? I found a few case where
> >>> it's not clear to me, if tlb flushing is done... If you think this
> >>> is still the right thing to do, please change arch/mips/mm/pgtable-32.c
> >>> as well.
> >> well, I will double check this and do more testing about thp and hugepage.
> >
> > I was more concerned about
> >
> > fs/dax.c
> > fs/proc/task_mmu.c
> > mm/rmap.c
>
> I think that flush_tlb_all should not be called in function set_pmd_at
> on mips platform. However update_mmu_cache_pmd() should be called __after__
> set_pmd_at() function to update tlb entry at some places, it is another issue.
> Here is my analysis in the three files where set_pmd_at is called.
> [..]

thank you for confirming that we are good with removing flush_tlb_all().

Thomas.

--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]