From: Chao Gao <chao.gao@intel.com>
To: "Xin Li (Intel)" <xin@zytor.com>
Cc: <linux-kernel@vger.kernel.org>, <kvm@vger.kernel.org>,
<linux-doc@vger.kernel.org>, <pbonzini@redhat.com>,
<seanjc@google.com>, <corbet@lwn.net>, <tglx@linutronix.de>,
<mingo@redhat.com>, <bp@alien8.de>, <dave.hansen@linux.intel.com>,
<x86@kernel.org>, <hpa@zytor.com>, <luto@kernel.org>,
<peterz@infradead.org>, <andrew.cooper3@citrix.com>,
<hch@infradead.org>
Subject: Re: [PATCH v5 10/23] KVM: VMX: Add support for FRED context save/restore
Date: Thu, 24 Jul 2025 13:35:18 +0800 [thread overview]
Message-ID: <aIHGFpKfkyDisYaZ@intel.com> (raw)
In-Reply-To: <20250723175341.1284463-11-xin@zytor.com>
>@@ -1870,6 +1873,37 @@ static int __kvm_set_msr(struct kvm_vcpu *vcpu, u32 index, u64 data,
>
> data = (u32)data;
> break;
>+ case MSR_IA32_FRED_STKLVLS:
>+ if (!guest_cpu_cap_has(vcpu, X86_FEATURE_FRED))
>+ return 1;
Return KVM_MSR_RET_UNSUPPORTED instead of 1.
KVM's uAPI allows userspace to read MSRs and write 0 to MSRs even if an MSR
isn't supported according to guest CPUIDs. Returning KVM_MSR_RET_UNSUPPORTED
allows kvm_do_msr_access() to suppress the failure when needed to comply with
the uAPI.
For more details, see kvm_do_msr_access().
>+ break;
>+ case MSR_IA32_FRED_RSP0 ... MSR_IA32_FRED_RSP3:
>+ case MSR_IA32_FRED_SSP1 ... MSR_IA32_FRED_CONFIG:
>+ u64 reserved_bits = 0;
>+
>+ if (!guest_cpu_cap_has(vcpu, X86_FEATURE_FRED))
>+ return 1;
Ditto here and for __kvm_get_msr() below.
>+
>+ if (is_noncanonical_msr_address(data, vcpu))
>+ return 1;
>+
>+ switch (index) {
>+ case MSR_IA32_FRED_CONFIG:
>+ reserved_bits = BIT_ULL(11) | GENMASK_ULL(5, 4) | BIT_ULL(2);
>+ break;
>+ case MSR_IA32_FRED_RSP0 ... MSR_IA32_FRED_RSP3:
>+ reserved_bits = GENMASK_ULL(5, 0);
>+ break;
>+ case MSR_IA32_FRED_SSP1 ... MSR_IA32_FRED_SSP3:
>+ reserved_bits = GENMASK_ULL(2, 0);
>+ break;
>+ default:
>+ WARN_ON_ONCE(1);
>+ return 1;
>+ }
>+ if (data & reserved_bits)
>+ return 1;
>+ break;
> }
>
> msr.data = data;
>@@ -1914,6 +1948,10 @@ int __kvm_get_msr(struct kvm_vcpu *vcpu, u32 index, u64 *data,
> !guest_cpu_cap_has(vcpu, X86_FEATURE_RDPID))
> return 1;
> break;
>+ case MSR_IA32_FRED_RSP0 ... MSR_IA32_FRED_CONFIG:
>+ if (!guest_cpu_cap_has(vcpu, X86_FEATURE_FRED))
>+ return 1;
>+ break;
> }
>
> msr.index = index;
>@@ -7365,6 +7403,10 @@ static void kvm_probe_msr_to_save(u32 msr_index)
> if (!(kvm_get_arch_capabilities() & ARCH_CAP_TSX_CTRL_MSR))
> return;
> break;
>+ case MSR_IA32_FRED_RSP0 ... MSR_IA32_FRED_CONFIG:
>+ if (!kvm_cpu_cap_has(X86_FEATURE_FRED))
>+ return;
>+ break;
> default:
> break;
> }
>--
>2.50.1
>
next prev parent reply other threads:[~2025-07-24 5:36 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-23 17:53 [PATCH v5 00/23] Enable FRED with KVM VMX Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 01/23] KVM: VMX: Add support for the secondary VM exit controls Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 02/23] KVM: VMX: Initialize VM entry/exit FRED controls in vmcs_config Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 03/23] KVM: VMX: Disable FRED if FRED consistency checks fail Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 04/23] x86/cea: Export an API to get per CPU exception stacks for KVM to use Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 05/23] KVM: VMX: Fix an indentation Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 06/23] KVM: VMX: Initialize VMCS FRED fields Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 07/23] KVM: VMX: Set FRED MSR intercepts Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 08/23] KVM: VMX: Save/restore guest FRED RSP0 Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 09/23] KVM: VMX: Add host MSR read/write helpers to streamline preemption logic Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 10/23] KVM: VMX: Add support for FRED context save/restore Xin Li (Intel)
2025-07-24 5:35 ` Chao Gao [this message]
2025-07-24 18:01 ` Xin Li
2025-08-02 17:15 ` [PATCH v5A " Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 11/23] KVM: x86: Add a helper to detect if FRED is enabled for a vCPU Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 12/23] KVM: VMX: Virtualize FRED event_data Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 13/23] KVM: VMX: Virtualize FRED nested exception tracking Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 14/23] Documentation: kvm: Fix a section number typo Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 15/23] KVM: x86: Save/restore the nested flag of an exception Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 16/23] KVM: x86: Mark CR4.FRED as not reserved Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 17/23] KVM: VMX: Dump FRED context in dump_vmcs() Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 18/23] KVM: x86: Advertise support for FRED Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 19/23] KVM: nVMX: Add support for the secondary VM exit controls Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 20/23] KVM: nVMX: Add FRED VMCS fields to nested VMX context handling Xin Li (Intel)
2025-07-24 6:50 ` Chao Gao
2025-07-31 7:24 ` Xin Li
2025-08-02 17:17 ` [PATCH v5A " Xin Li (Intel)
2025-08-02 17:33 ` Xin Li
2025-08-04 6:03 ` Xin Li
2025-07-23 17:53 ` [PATCH v5 21/23] KVM: nVMX: Add FRED-related VMCS field checks Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 22/23] KVM: nVMX: Allow VMX FRED controls Xin Li (Intel)
2025-07-23 17:53 ` [PATCH v5 23/23] KVM: nVMX: Add prerequisites to SHADOW_FIELD_R[OW] macros Xin Li (Intel)
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=aIHGFpKfkyDisYaZ@intel.com \
--to=chao.gao@intel.com \
--cc=andrew.cooper3@citrix.com \
--cc=bp@alien8.de \
--cc=corbet@lwn.net \
--cc=dave.hansen@linux.intel.com \
--cc=hch@infradead.org \
--cc=hpa@zytor.com \
--cc=kvm@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peterz@infradead.org \
--cc=seanjc@google.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=xin@zytor.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.