On 11/09/2016, 03:46 PM, James Hogan wrote: > commit 91e4f1b6073dd680d86cdb7e42d7cccca9db39d8 upstream. > > When a guest TLB entry is replaced by TLBWI or TLBWR, we only invalidate > TLB entries on the local CPU. This doesn't work correctly on an SMP host > when the guest is migrated to a different physical CPU, as it could pick > up stale TLB mappings from the last time the vCPU ran on that physical > CPU. > > Therefore invalidate both user and kernel host ASIDs on other CPUs, > which will cause new ASIDs to be generated when it next runs on those > CPUs. > > We're careful only to do this if the TLB entry was already valid, and > only for the kernel ASID where the virtual address it mapped is outside > of the guest user address range. > > Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx> > Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> > Cc: "Radim Krčmář" <rkrcmar@xxxxxxxxxx> > Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx> > Cc: linux-mips@xxxxxxxxxxxxxx > Cc: kvm@xxxxxxxxxxxxxxx > Cc: <stable@xxxxxxxxxxxxxxx> # 3.10.x- > Cc: Jiri Slaby <jslaby@xxxxxxx> > [james.hogan@xxxxxxxxxx: Backport to 3.10..3.16] > Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx> > --- > Unfortunately the original commit went in to v3.12.65 as commit > 168e5ebbd63e, without fixing up the references to tlb_lo[0/1] to > tlb_lo0/1 which broke the MIPS KVM build, and I didn't twig that I > already had a correct backport outstanding (sorry!). That commit should > be reverted before applying this backport to 3.12. Thanks, reverted and applied. I wonder the builders didn't break given 4 mips configurations are tested. I indeed could reproduce locally. -- js suse labs