• James Hogan's avatar
    MIPS: KVM: Use tlb_write_random · b5dfc6c1
    James Hogan authored
    When MIPS KVM needs to write a TLB entry for the guest it reads the
    CP0_Random register, uses it to generate the CP_Index, and writes the
    TLB entry using the TLBWI instruction (tlb_write_indexed()).
    
    However there's an instruction for that, TLBWR (tlb_write_random()) so
    use that instead.
    
    This happens to also fix an issue with Ingenic XBurst cores where the
    same TLB entry is replaced each time preventing forward progress on
    stores due to alternating between TLB load misses for the instruction
    fetch and TLB store misses.
    Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Gleb Natapov <gleb@kernel.org>
    Cc: kvm@vger.kernel.org
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Cc: Sanjay Lal <sanjayl@kymasys.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    b5dfc6c1
kvm_tlb.c 19.6 KB