lkml.org 
[lkml]   [2023]   [Feb]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH V2 2/8] kvm: x86/mmu: Use kvm_mmu_invalidate_gva() in kvm_mmu_invpcid_gva()
    Date
    From: Lai Jiangshan <jiangshan.ljs@antgroup.com>

    Use kvm_mmu_invalidate_gva() instead open calls to mmu->invlpg().

    No functional change intended.

    Signed-off-by: Lai Jiangshan <jiangshan.ljs@antgroup.com>
    ---
    arch/x86/kvm/mmu/mmu.c | 21 +++++++--------------
    1 file changed, 7 insertions(+), 14 deletions(-)

    diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
    index 958e8eb977ed..8563b52b8bb7 100644
    --- a/arch/x86/kvm/mmu/mmu.c
    +++ b/arch/x86/kvm/mmu/mmu.c
    @@ -5757,27 +5757,20 @@ EXPORT_SYMBOL_GPL(kvm_mmu_invlpg);
    void kvm_mmu_invpcid_gva(struct kvm_vcpu *vcpu, gva_t gva, unsigned long pcid)
    {
    struct kvm_mmu *mmu = vcpu->arch.mmu;
    - bool tlb_flush = false;
    + unsigned long roots = 0;
    uint i;

    - if (pcid == kvm_get_active_pcid(vcpu)) {
    - if (mmu->invlpg)
    - mmu->invlpg(vcpu, gva, mmu->root.hpa);
    - tlb_flush = true;
    - }
    + if (pcid == kvm_get_active_pcid(vcpu))
    + roots |= KVM_MMU_ROOT_CURRENT;

    for (i = 0; i < KVM_MMU_NUM_PREV_ROOTS; i++) {
    if (VALID_PAGE(mmu->prev_roots[i].hpa) &&
    - pcid == kvm_get_pcid(vcpu, mmu->prev_roots[i].pgd)) {
    - if (mmu->invlpg)
    - mmu->invlpg(vcpu, gva, mmu->prev_roots[i].hpa);
    - tlb_flush = true;
    - }
    + pcid == kvm_get_pcid(vcpu, mmu->prev_roots[i].pgd))
    + roots |= KVM_MMU_ROOT_PREVIOUS(i);
    }

    - if (tlb_flush)
    - static_call(kvm_x86_flush_tlb_gva)(vcpu, gva);
    -
    + if (roots)
    + kvm_mmu_invalidate_gva(vcpu, mmu, gva, roots);
    ++vcpu->stat.invlpg;

    /*
    --
    2.19.1.6.gb485710b
    \
     
     \ /
      Last update: 2023-03-27 00:12    [W:2.214 / U:0.288 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site