From: Vitaly Kuznetsov <vkuznets@redhat.com>
To: Sean Christopherson <sean.j.christopherson@intel.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Wanpeng Li <wanpengli@tencent.com>,
Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 03/10] KVM: VMX: Handle INVVPID fallback logic in vpid_sync_vcpu_addr()
Date: Fri, 21 Feb 2020 14:26:45 +0100 [thread overview]
Message-ID: <8736b4t6ju.fsf@vitty.brq.redhat.com> (raw)
In-Reply-To: <20200220204356.8837-4-sean.j.christopherson@intel.com>
Sean Christopherson <sean.j.christopherson@intel.com> writes:
> Directly invoke vpid_sync_context() to do a global INVVPID when the
> individual address variant is not supported instead of deferring such
> behavior to the caller. This allows for additional consolidation of
> code as the logic is basically identical to the emulation of the
> individual address variant in handle_invvpid().
>
> No functional change intended.
>
> Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
> ---
> arch/x86/kvm/vmx/ops.h | 12 +++++-------
> arch/x86/kvm/vmx/vmx.c | 3 +--
> 2 files changed, 6 insertions(+), 9 deletions(-)
>
> diff --git a/arch/x86/kvm/vmx/ops.h b/arch/x86/kvm/vmx/ops.h
> index a2b0689e65e3..612df1bdb26b 100644
> --- a/arch/x86/kvm/vmx/ops.h
> +++ b/arch/x86/kvm/vmx/ops.h
> @@ -276,17 +276,15 @@ static inline void vpid_sync_context(int vpid)
> vpid_sync_vcpu_global();
> }
>
> -static inline bool vpid_sync_vcpu_addr(int vpid, gva_t addr)
> +static inline void vpid_sync_vcpu_addr(int vpid, gva_t addr)
> {
> if (vpid == 0)
> - return true;
> + return;
>
> - if (cpu_has_vmx_invvpid_individual_addr()) {
> + if (cpu_has_vmx_invvpid_individual_addr())
> __invvpid(VMX_VPID_EXTENT_INDIVIDUAL_ADDR, vpid, addr);
> - return true;
> - }
> -
> - return false;
> + else
> + vpid_sync_context(vpid);
> }
>
> static inline void ept_sync_global(void)
> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
> index 9a6664886f2e..349a6e054e0e 100644
> --- a/arch/x86/kvm/vmx/vmx.c
> +++ b/arch/x86/kvm/vmx/vmx.c
> @@ -2826,8 +2826,7 @@ static void vmx_flush_tlb_gva(struct kvm_vcpu *vcpu, gva_t addr)
> {
> int vpid = to_vmx(vcpu)->vpid;
>
> - if (!vpid_sync_vcpu_addr(vpid, addr))
> - vpid_sync_context(vpid);
> + vpid_sync_vcpu_addr(vpid, addr);
>
> /*
> * If VPIDs are not supported or enabled, then the above is a no-op.
Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
--
Vitaly
next prev parent reply other threads:[~2020-02-21 13:26 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-20 20:43 [PATCH 00/10] KVM: x86: Clean up VMX's TLB flushing code Sean Christopherson
2020-02-20 20:43 ` [PATCH 01/10] KVM: VMX: Use vpid_sync_context() directly when possible Sean Christopherson
2020-02-21 13:17 ` Vitaly Kuznetsov
2020-02-21 15:36 ` Sean Christopherson
2020-02-21 17:26 ` Paolo Bonzini
2020-02-20 20:43 ` [PATCH 02/10] KVM: VMX: Move vpid_sync_vcpu_addr() down a few lines Sean Christopherson
2020-02-21 13:19 ` Vitaly Kuznetsov
2020-02-20 20:43 ` [PATCH 03/10] KVM: VMX: Handle INVVPID fallback logic in vpid_sync_vcpu_addr() Sean Christopherson
2020-02-21 13:26 ` Vitaly Kuznetsov [this message]
2020-02-20 20:43 ` [PATCH 04/10] KVM: VMX: Fold vpid_sync_vcpu_{single,global}() into vpid_sync_context() Sean Christopherson
2020-02-21 13:39 ` Vitaly Kuznetsov
2020-02-21 15:32 ` Sean Christopherson
2020-02-21 17:28 ` Paolo Bonzini
2020-02-20 20:43 ` [PATCH 05/10] KVM: nVMX: Use vpid_sync_vcpu_addr() to emulate INVVPID with address Sean Christopherson
2020-02-21 13:43 ` Vitaly Kuznetsov
2020-02-20 20:43 ` [PATCH 06/10] KVM: x86: Move "flush guest's TLB" logic to separate kvm_x86_ops hook Sean Christopherson
[not found] ` <87tv3krqta.fsf@vitty.brq.redhat.com>
2020-02-21 17:31 ` Paolo Bonzini
2020-02-21 17:32 ` Paolo Bonzini
2020-02-20 20:43 ` [PATCH 07/10] KVM: VMX: Clean up vmx_flush_tlb_gva() Sean Christopherson
2020-02-21 13:54 ` Vitaly Kuznetsov
2020-02-20 20:43 ` [PATCH 08/10] KVM: x86: Drop @invalidate_gpa param from kvm_x86_ops' tlb_flush() Sean Christopherson
2020-02-21 13:56 ` Vitaly Kuznetsov
2020-02-20 20:43 ` [PATCH 09/10] KVM: VMX: Drop @invalidate_gpa from __vmx_flush_tlb() Sean Christopherson
2020-02-20 20:43 ` [PATCH 10/10] KVM: VMX: Fold __vmx_flush_tlb() into vmx_flush_tlb() Sean Christopherson
2020-02-21 13:20 ` [PATCH 00/10] KVM: x86: Clean up VMX's TLB flushing code Paolo Bonzini
-- strict thread matches above, loose matches on Subject: below --
2020-02-21 6:56 [PATCH 03/10] KVM: VMX: Handle INVVPID fallback logic in vpid_sync_vcpu_addr() linmiaohe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8736b4t6ju.fsf@vitty.brq.redhat.com \
--to=vkuznets@redhat.com \
--cc=jmattson@google.com \
--cc=joro@8bytes.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=sean.j.christopherson@intel.com \
--cc=wanpengli@tencent.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.