• Lai Jiangshan's avatar
    KVM: X86: Don't flush current tlb on shadow page modification · bd047e54
    Lai Jiangshan authored
    After any shadow page modification, flushing tlb only on current VCPU
    is weird due to other VCPU's tlb might still be stale.
    
    In other words, if there is any mandatory tlb-flushing after shadow page
    modification, SET_SPTE_NEED_REMOTE_TLB_FLUSH or remote_flush should be
    set and the tlbs of all VCPUs should be flushed.  There is not point to
    only flush current tlb except when the request is from vCPU's or pCPU's
    activities.
    
    If there was any bug that mandatory tlb-flushing is required and
    SET_SPTE_NEED_REMOTE_TLB_FLUSH/remote_flush is failed to set, this patch
    would expose the bug in a more destructive way.  The related code paths
    are checked and no missing SET_SPTE_NEED_REMOTE_TLB_FLUSH is found yet.
    
    Currently, there is no optional tlb-flushing after sync page related code
    is changed to flush tlb timely.  So we can just remove these local flushing
    code.
    Signed-off-by: default avatarLai Jiangshan <laijs@linux.alibaba.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Message-Id: <20210918005636.3675-5-jiangshanlai@gmail.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    bd047e54
tdp_mmu.c 45.8 KB