On Wed, Jul 07, 2021 at 05:54:40PM -0700, isaku.yamahata@xxxxxxxxx wrote: > From: Xiaoyao Li <xiaoyao.li@xxxxxxxxx> > > Introduce tdx_ioctl() to invoke TDX specific sub-ioctls of > KVM_MEMORY_ENCRYPT_OP. Use tdx_ioctl() to invoke KVM_TDX_INIT, by way > of tdx_init(), during kvm_arch_init(). KVM_TDX_INIT configures global > TD state, e.g. the canonical CPUID config, and must be executed prior to > creating vCPUs. > > Note, this doesn't address the fact that Qemu may change the CPUID > configuration when creating vCPUs, i.e. punts on refactoring Qemu to > provide a stable CPUID config prior to kvm_arch_init(). > > Explicitly set subleaf index and flags when adding CPUID > Set the index and flags when adding a CPUID entry to avoid propagating > stale state from a removed entry, e.g. when the CPUID 0x4 loop bails, it > can leave non-zero index and flags in the array. > > Signed-off-by: Xiaoyao Li <xiaoyao.li@xxxxxxxxx> > Co-developed-by: Sean Christopherson <sean.j.christopherson@xxxxxxxxx> > Signed-off-by: Sean Christopherson <sean.j.christopherson@xxxxxxxxx> > Signed-off-by: Isaku Yamahata <isaku.yamahata@xxxxxxxxx> > --- > +++ b/qapi/qom.json > @@ -760,6 +760,18 @@ > '*cbitpos': 'uint32', > 'reduced-phys-bits': 'uint32' } } > > +## > +# @TdxGuestProperties: > +# > +# Properties for tdx-guest objects. > +# > +# @debug: enable debug mode (default: off) > +# > +# Since: 6.0 This should be 6.2 > +## > +{ 'struct': 'TdxGuestProperties', > + 'data': { '*debug': 'bool' } } > + > ## > # @ObjectType: > # > @@ -802,6 +814,7 @@ > 'secret_keyring', > 'sev-guest', > 's390-pv-guest', > + 'tdx-guest', > 'throttle-group', > 'tls-creds-anon', > 'tls-creds-psk', > @@ -858,6 +871,7 @@ > 'secret': 'SecretProperties', > 'secret_keyring': 'SecretKeyringProperties', > 'sev-guest': 'SevGuestProperties', > + 'tdx-guest': 'TdxGuestProperties', > 'throttle-group': 'ThrottleGroupProperties', > 'tls-creds-anon': 'TlsCredsAnonProperties', > 'tls-creds-psk': 'TlsCredsPskProperties', -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org