On Fri, Nov 07, 2025 at 10:49:30AM +0100, Markus Armbruster wrote:
> Naveen N Rao <[email protected]> writes:
> 
> > On Thu, Nov 06, 2025 at 01:09:37PM +0100, Markus Armbruster wrote:
> >> Pardon my ignorance...
> >> 
> >> "Naveen N Rao (AMD)" <[email protected]> writes:
> >> 
> >> > Add support for configuring the TSC frequency when Secure TSC is enabled
> >> > in SEV-SNP guests through a new "tsc-frequency" property on SEV-SNP
> >> > guest objects, similar to the vCPU-specific property used by regular
> >> > guests and TDX.
> >> 
> >> Which property exactly?
> >
> > Same name: tsc-frequency specified with '-cpu'
> 
> Thanks.  It's x86_64-cpu property tsc-frequency.

Ok.

> 
> >> 
> >> >                 A new property is needed since SEV-SNP guests require
> >> > the TSC frequency to be specified during early SNP_LAUNCH_START command
> >> > before any vCPUs are created.
> >> 
> >> Sounds awkward.
> >> 
> >> Do the two properties set the same thing at different times?
> >
> > Yes. For regular guests, TSC frequency is set using a vCPU ioctl.  
> > However, TDX and SEV-SNP (with Secure TSC) require the TSC frequency to 
> > be set as a VM property (there is a VM ioctl for this purpose).
> >
> > This was Tom's question too (see v2): is there any way to re-use 
> > 'tsc-frequency' specified with '-cpu' for Secure TSC.
> 
> Hmm, let's see whether I can guess how this stuff works.  Please correct
> my misunderstandings.
> 
> When machine property confidential-guest-support is null, it's a regular
> guest.
> 
> If it points to a sev-guest object, it's SEV.

Yes, or a SEV-ES guest.

> 
> If it points to a sev-snp-guest object, it's SEV-SNP.
> 
> If it points to a tdx-guest object, it's TDX.
> 
> Normally, the TSC frequency is specified with x86_64-cpu property
> tsc-frequency.
> 
> Can different CPUs have different frequencies?

I believe Daniel has answered this in his reply.

> 
> In certain cases (SEV-SNP or TDX guest with Secure TSC), tsc-frequency

nit: TDX guest, or SEV-SNP with Secure TSC.

> needs to be configured before any CPUs are created.  You're implementing
> this for SEV-SNP, and you chose to create a sev-snp property
> tsc-frequency for this.
> 
> What happens when I enable Secure TSC with sev-snp property
> "secure-tsc": true, but don't set property tsc-frequency?

KVM uses the host default if tsc-frequency is not explicitly specified.

> 
> What happens when I do set it, and then also set the CPU property?  To
> the same frequency?  To a different frequency?

>From the commit log:
  Attempts to set TSC frequency on both the SEV_SNP object and the cpu
  object result in an error from KVM (on the vCPU ioctl), so do not add
  separate checks for the same.

If the same frequency is specified in both places, then no error is 
thrown.


Thanks,
Naveen


Reply via email to