summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/vmx/vmx.h
diff options
context:
space:
mode:
authorSean Christopherson <sean.j.christopherson@intel.com>2021-03-05 19:31:23 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2021-03-15 09:44:06 +0100
commit978c834a669160e9794c551ee324286ebeb414c0 (patch)
tree17fa77ea4a7f78d0730e99600e62ae182c30ba7e /arch/x86/kvm/vmx/vmx.h
parentKVM: VMX: Skip additional Hyper-V TLB EPTP flushes if one fails (diff)
downloadlinux-978c834a669160e9794c551ee324286ebeb414c0.tar.xz
linux-978c834a669160e9794c551ee324286ebeb414c0.zip
KVM: VMX: Track root HPA instead of EPTP for paravirt Hyper-V TLB flush
Track the address of the top-level EPT struct, a.k.a. the root HPA, instead of the EPTP itself for Hyper-V's paravirt TLB flush. The paravirt API takes only the address, not the full EPTP, and in theory tracking the EPTP could lead to false negatives, e.g. if the HPA matched but the attributes in the EPTP do not. In practice, such a mismatch is extremely unlikely, if not flat out impossible, given how KVM generates the EPTP. Opportunsitically rename the related fields to use the 'root' nomenclature, and to prefix them with 'hv_' to connect them to Hyper-V's paravirt TLB flushing. Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com> Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> Signed-off-by: Sean Christopherson <seanjc@google.com> Message-Id: <20210305183123.3978098-12-seanjc@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm/vmx/vmx.h')
-rw-r--r--arch/x86/kvm/vmx/vmx.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86/kvm/vmx/vmx.h b/arch/x86/kvm/vmx/vmx.h
index 6d97b5a64b62..0fb3236b0283 100644
--- a/arch/x86/kvm/vmx/vmx.h
+++ b/arch/x86/kvm/vmx/vmx.h
@@ -326,7 +326,7 @@ struct vcpu_vmx {
u64 msr_ia32_feature_control;
u64 msr_ia32_feature_control_valid_bits;
#if IS_ENABLED(CONFIG_HYPERV)
- u64 ept_pointer;
+ u64 hv_root_ept;
#endif
struct pt_desc pt_desc;
@@ -348,8 +348,8 @@ struct kvm_vmx {
gpa_t ept_identity_map_addr;
#if IS_ENABLED(CONFIG_HYPERV)
- hpa_t hv_tlb_eptp;
- spinlock_t ept_pointer_lock;
+ hpa_t hv_root_ept;
+ spinlock_t hv_root_ept_lock;
#endif
};