On Fri, Aug 7, 2020 at 1:53 PM Yang Shi shy828301@gmail.com wrote:
I'm supposed Catalin would submit his proposal (flush local TLB for spurious TLB fault on ARM) for this specific regression per the discussion, right?
I think arm64 should do that regardless, yes.
But I would also be ok with a version that does the FAULT_FLAG_TRIED testing, but does it only for that spurious TLB flushing.
This "let's not update the page tables at all" is wrong, when the only problem was the TLB flushing.
So changing the current (but quesitonable)
if (vmf->flags & FAULT_FLAG_WRITE) flush_tlb_fix_spurious_fault(vmf->vma, vmf->address);
to be
if (vmf->flags & (FAULT_FLAG_WRITE | FAULT_FLAG_TRIED)) flush_tlb_fix_spurious_fault(vmf->vma, vmf->address);
would be fine.
But this patch that changes any semantics outside just the flushin gis a complete no-no.
Linus