On 11/1/2024 10:10 PM, Borislav Petkov wrote: > 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. Yes, will update. > >> + 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. Sure, I noticed your patch adding __vc_handle_msr_caa(). Regards Nikunj