From: Boris Ostrovsky Date: Tue, 26 Mar 2019 22:45:57 +0000 (-0400) Subject: Revert "KVM: SVM: Add MSR-based feature support for serializing LFENCE" X-Git-Tag: v4.1.12-124.31.3~227 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=b2c2b958753ffe10ccf4d434fab754627aa3a007;p=users%2Fjedix%2Flinux-maple.git Revert "KVM: SVM: Add MSR-based feature support for serializing LFENCE" This reverts commit 351ff7a273f566e1efed1be14f01fc9510ad9002. Revert due to performance regression. Orabug: 29542029 Signed-off-by: Boris Ostrovsky Reviewed-by: Mihai Carabas Signed-off-by: Brian Maly --- diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index 5b54efa669c8..b6bf48bd74c9 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -137,8 +137,6 @@ struct vcpu_svm { uint64_t sysenter_esp; uint64_t sysenter_eip; - u64 msr_decfg; - u64 next_rip; u64 host_user_msrs[NR_HOST_SAVE_USER_MSRS]; @@ -3111,18 +3109,7 @@ static u64 svm_read_l1_tsc(struct kvm_vcpu *vcpu, u64 host_tsc) static int svm_get_msr_feature(struct kvm_msr_entry *msr) { - msr->data = 0; - - switch (msr->index) { - case MSR_F10H_DECFG: - if (boot_cpu_has(X86_FEATURE_LFENCE_RDTSC)) - msr->data |= BIT_ULL(MSR_F10H_DECFG_LFENCE_SERIALIZE_BIT); - break; - default: - return 1; - } - - return 0; + return 1; } static int svm_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info) @@ -3202,9 +3189,6 @@ static int svm_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info) case MSR_IA32_UCODE_REV: msr_info->data = 0x01000065; break; - case MSR_F10H_DECFG: - msr_info->data = svm->msr_decfg; - break; default: return kvm_get_msr_common(vcpu, msr_info); } @@ -3373,24 +3357,6 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr) svm->virt_spec_ctrl = data; break; - case MSR_F10H_DECFG: { - struct kvm_msr_entry msr_entry; - - msr_entry.index = msr->index; - if (svm_get_msr_feature(&msr_entry)) - return 1; - - /* Check the supported bits */ - if (data & ~msr_entry.data) - return 1; - - /* Don't allow the guest to change a bit, #GP */ - if (!msr->host_initiated && (data ^ msr_entry.data)) - return 1; - - svm->msr_decfg = data; - break; - } default: return kvm_set_msr_common(vcpu, msr); } diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 65c6e6f17cb9..76299d88381d 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -972,7 +972,6 @@ static const u32 emulated_msrs[] = { */ static u32 msr_based_features[] = { MSR_IA32_ARCH_CAPABILITIES, - MSR_F10H_DECFG, }; static unsigned int num_msr_based_features;