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 ]