Re: [PATCH v14 03/22] KVM: selftests: Initialize the TDX VM
Peter Fang <[email protected]>
| Newsgroups | dev.linux.lists.linux-coco,org.kernel.vger.kvm,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest |
|---|---|
| Message-ID | <20260820084648.GB3290799@pedri> |
On Wed, Jul 22, 2026 at 11:13:08PM +0000, Lisa Wang wrote: > From: Sagi Shahar <[email protected]> > > Add tdx_init_vm() to handle the mandatory VM-level initialization > sequence required for Intel TDX. > > For TDX, the guest's CPUID configuration must be "sealed" during > KVM_TDX_INIT_VM before any vCPUs are created. This is necessary because > the TDX hardware directly virtualizes CPUID and includes the > configuration in the guest's initial security measurement. > > The helper calculates the required CPUID values by filtering the host- > supported bits (kvm_get_supported_cpuid) against the "directly > configurable" bits reported by KVM_TDX_CAPABILITIES, ensuring > compliance with the strict requirements of the TDH.MNG.INIT SEAMCALL. > [ ... ] > + > +/* > + * Filter CPUID based on TDX supported capabilities > + * > + * Input Args: > + * vm - Virtual Machine > + * cpuid_data - CPUID fields to filter > + * > + * Output Args: None > + * > + * Return: None > + * > + * For each CPUID leaf, filter out unsupported bits based on the capabilities > + * reported by the TDX module > + */ > +static void tdx_filter_cpuid(struct kvm_vm *vm, > + struct kvm_cpuid2 *cpuid_data) > +{ > + struct kvm_tdx_capabilities *tdx_cap; > + const struct kvm_cpuid_entry2 *config; Nit: reverse fir tree order i.e. declaring "config" first? > + struct kvm_cpuid_entry2 *e; > + int i; > +