Re: [PATCH 2/7] KVM: SVM: Disable interception of FRED MSRs for FRED supported guests

From: Shivansh Dhiman

Date: Mon Mar 09 2026 - 13:50:43 EST




On 07-03-2026 07:40, Sean Christopherson wrote:
> On Thu, Jan 29, 2026, Shivansh Dhiman wrote:
>> +static void svm_recalc_fred_msr_intercepts(struct kvm_vcpu *vcpu)
>> +{
>> + struct vcpu_svm *svm = to_svm(vcpu);
>> + bool fred_enabled = svm->vmcb->control.virt_ext & FRED_VIRT_ENABLE_MASK;
>
> Please use guest_cpu_cap_has(). The VMCB enable bit is a reflection of the
> guest's capabilities, not the other way around.

That makes sense. Will do.

>
> And s/fred_enabled/intercept.

Ack.

- Shivansh

>
>> +
>> + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_RSP0, MSR_TYPE_RW, !fred_enabled);
>> + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_RSP1, MSR_TYPE_RW, !fred_enabled);
>> + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_RSP2, MSR_TYPE_RW, !fred_enabled);
>> + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_RSP3, MSR_TYPE_RW, !fred_enabled);
>> + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_STKLVLS, MSR_TYPE_RW, !fred_enabled);
>> + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_SSP1, MSR_TYPE_RW, !fred_enabled);
>> + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_SSP2, MSR_TYPE_RW, !fred_enabled);
>> + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_SSP3, MSR_TYPE_RW, !fred_enabled);
>> + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_CONFIG, MSR_TYPE_RW, !fred_enabled);
>> +}
>> +
>> static void svm_recalc_msr_intercepts(struct kvm_vcpu *vcpu)
>> {
>> struct vcpu_svm *svm = to_svm(vcpu);
>> @@ -795,6 +811,8 @@ static void svm_recalc_msr_intercepts(struct kvm_vcpu *vcpu)
>> if (sev_es_guest(vcpu->kvm))
>> sev_es_recalc_msr_intercepts(vcpu);
>>
>> + svm_recalc_fred_msr_intercepts(vcpu);
>> +
>> /*
>> * x2APIC intercepts are modified on-demand and cannot be filtered by
>> * userspace.
>> --
>> 2.43.0
>>