Messages in this thread | | | From | "Huang, Kai" <> | Subject | Re: [PATCH] x86/tdx: Override the tsc calibration for TDX VMs | Date | Fri, 6 Oct 2023 10:43:29 +0000 |
| |
> > +/** > + * Determine TSC frequency via CPUID, else return 0. > + */
Nit: looks you don't need the k-doc style comment here?
> +static unsigned long tdx_calibrate_tsc(void) > +{ > + unsigned int eax_denominator = 0, ebx_numerator = 0, ecx_hz = 0, edx = 0; > + unsigned int crystal_khz; > + > + /* CPUID 15H TSC/Crystal ratio, plus optionally Crystal Hz */ > + cpuid(0x15, &eax_denominator, &ebx_numerator, &ecx_hz, &edx); > + > + if (ebx_numerator == 0 || eax_denominator == 0) > + return 0; > + > + crystal_khz = ecx_hz / 1000; > + > + /* > + * TSC frequency reported directly by CPUID is a "hardware reported" > + * frequency and is the most accurate one so far we have. This > + * is considered a known frequency. > + */ > + if (crystal_khz != 0) > + setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ); > + > + return crystal_khz * ebx_numerator / eax_denominator; > +} > +
| |