On Mon, Jul 27, 2020 at 10:01:47AM -0700, Linus Torvalds wrote: > On Mon, Jul 27, 2020 at 4:05 AM Catalin Marinas <catalin.marinas@xxxxxxx> wrote: > > It leaves the spurious flush in place but only local (though note that > > in a guest under KVM, all local TLBIs are upgraded to inner-shareable, > > so you'd not get the performance benefit). > > Is there a way to mark and override that for this case? > > It really makes no sense to distribute the TLB invalidation. Even if > some virtualization manager switches CPU's from under us at _just_ the > wrong moment, it doesn't matter. It's a spurious thing, at worst we'll > take one more exception on the other CPU that didn't get flushed after > all. Unfortunately, that configuration bit (force broadcast) also affects the I-cache invalidation. I guess we could experiment with turning it off and performing the TLB and I-cache invalidation on a vCPU migration. But we first need to figure out if the non-broadcast TLBI in this case does make a significant difference in this case (as per Will's comment, maybe we can make flush_tlb_fix_spurious_fault() a no-op). -- Catalin