Re: [PATCH] MIPS: fix pmd_mkinvalid

From: Thomas Bogendoerfer
Date: Tue Jul 12 2022 - 07:29:43 EST


On Tue, Jul 12, 2022 at 06:01:08PM +0800, Hongchen Zhang wrote:
> On 2022/7/7 下午7:12, Hongchen Zhang wrote:
> > On 2022/7/7 下午5:22, Thomas Bogendoerfer wrote:
> > > On Thu, Jul 07, 2022 at 04:11:35PM +0800, Hongchen Zhang wrote:
> > > > When a pmd entry is invalidated by pmd_mkinvalid,pmd_present should
> > > > return true.
> > > > So introduce a _PMD_PRESENT_INVALID_SHIFT bit to check if a pmd is
> > > > present but invalidated by pmd_mkinvalid.
> > >
> > > What problem are you trying to fix ? What are the symptoms ?
> > >
> > > > Reported-by: kernel test robot <lkp@xxxxxxxxx>
> > >
> > > the test robot showed problems with your last version of the patch,
> > > which hasn't been integrated into at least the MIPS tree, so no
> > > need to that.
> > >
> > > Thomas.
> > >
> >
> > Hi Thomas,
> >   The idea come from the commit:
> >   b65399f6111b(arm64/mm: Change THP helpers to comply with generic MM
> >  semantics).
> >   There is an problem now:
> >         CPU 0        CPU 1
> >     pmdp_invalidate        do_page_fault
> >     ...              __handle_mm_fault
> >                     is_swap_pmd == true
> >                     trigger VM_BUG_ON() ?
> >     set_pmd_at
> >   the reason is that pmd_present return true,after this commit
> >   pmd_present will return false,and the VM_BUG_ON will not be triggered.
> >   Like arm64 does,we can introduce a new bit to fix this.
> >
> > Thanks.
> Hi Thomas,
> Is there problem of this patch? What's your opinion of this patch?

I haven't dig deeper into it, but needing more page bits is a pain
for 32bit kernel and would make it nearly impossible to get huge
page support there. And the description you gave me, needs to be
in the commit description.

Thomas.

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