Re: [PATCH v14 04/13] x86/sev: Change TSC MSR behavior for Secure TSC enabled guests
From: Borislav Petkov
Date: Fri Nov 01 2024 - 12:41:30 EST
On Mon, Oct 28, 2024 at 11:04:22AM +0530, Nikunj A Dadhania wrote:
> + /*
> + * TSC related accesses should not exit to the hypervisor when a
> + * guest is executing with SecureTSC enabled, so special handling
> + * is required for accesses of MSR_IA32_TSC:
> + *
> + * Writes: Writing to MSR_IA32_TSC can cause subsequent reads
> + * of the TSC to return undefined values, so ignore all
> + * writes.
> + * Reads: Reads of MSR_IA32_TSC should return the current TSC
> + * value, use the value returned by RDTSC.
> + */
> + if (regs->cx == MSR_IA32_TSC && (sev_status & MSR_AMD64_SNP_SECURE_TSC)) {
> + u64 tsc;
> +
> + if (exit_info_1)
> + return ES_OK;
> +
> + tsc = rdtsc();
rdtsc_ordered() I guess.
> + regs->ax = UINT_MAX & tsc;
> + regs->dx = UINT_MAX & (tsc >> 32);
> +
> + return ES_OK;
> + }
> +
All that you're adding - put that in a __vc_handle_msr_tsc() helper so that it
doesn't distract from the function's flow.
Thx.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette