]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Revert "KVM: SVM: Add MSR-based feature support for serializing LFENCE"
authorBoris Ostrovsky <boris.ostrovsky@oracle.com>
Tue, 26 Mar 2019 22:45:57 +0000 (18:45 -0400)
committerBrian Maly <brian.maly@oracle.com>
Wed, 27 Mar 2019 18:50:56 +0000 (14:50 -0400)
This reverts commit 351ff7a273f566e1efed1be14f01fc9510ad9002.

Revert due to performance regression.

Orabug: 29542029

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Reviewed-by: Mihai Carabas <mihai.carabas@oracle.com>
Signed-off-by: Brian Maly <brian.maly@oracle.com>
arch/x86/kvm/svm.c
arch/x86/kvm/x86.c

index 5b54efa669c896a5f074f18a38be120cf5b9b8d9..b6bf48bd74c9134fb69f6abd564ade1c4a8aad22 100644 (file)
@@ -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);
        }
index 65c6e6f17cb97c33a21b38d32fa2c39a4b22bb82..76299d88381d8bd4bf2e16adcaa3b052386a8c08 100644 (file)
@@ -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;