lkml.org 
[lkml]   [2018]   [Sep]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH V2 6/13] KVM/MMU: Flush tlb directly in kvm_mmu_zap_collapsible_spte()
    Date
    kvm_mmu_zap_collapsible_spte() returns flush request to the
    slot_handle_leaf() and the latter does flush on demand. When
    range flush is available, make kvm_mmu_zap_collapsible_spte()
    to flush tlb with range directly to avoid returning range back
    to slot_handle_leaf().

    Signed-off-by: Lan Tianyu <Tianyu.Lan@microsoft.com>
    ---
    arch/x86/kvm/mmu.c | 8 +++++++-
    1 file changed, 7 insertions(+), 1 deletion(-)

    diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
    index 56538fa6c017..85a81a62e0a7 100644
    --- a/arch/x86/kvm/mmu.c
    +++ b/arch/x86/kvm/mmu.c
    @@ -5674,7 +5674,13 @@ static bool kvm_mmu_zap_collapsible_spte(struct kvm *kvm,
    !kvm_is_reserved_pfn(pfn) &&
    PageTransCompoundMap(pfn_to_page(pfn))) {
    drop_spte(kvm, sptep);
    - need_tlb_flush = 1;
    +
    + if (kvm_available_flush_tlb_with_range())
    + kvm_flush_remote_tlbs_with_address(kvm, sp->gfn,
    + KVM_PAGES_PER_HPAGE(sp->role.level));
    + else
    + need_tlb_flush = 1;
    +
    goto restart;
    }
    }
    --
    2.14.4
    \
     
     \ /
      Last update: 2018-09-18 05:20    [W:4.463 / U:0.776 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site