On 8/20/20 12:05 PM, Tom Lendacky wrote: >> I added a quick hack to save TSC_AUX to a new variable in the SVM >> struct and then restore it right after VMEXIT (just after where GS is >> restored in svm_vcpu_enter_exit()) and my guest is no longer crashing. > > Sorry, I mean my host is no longer crashing.
Just to make sure I've got this: 1. Older CPUs didn't have X86_FEATURE_RDPID 2. FSGSBASE patches started using RDPID in the NMI entry path when supported *AND* FSGSBASE was enabled 3. There was a latent SVM bug which did not restore the RDPID data before NMIs were reenabled after VMEXIT 4. If an NMI comes in the window between VMEXIT and the wrmsr(TSC_AUX)... boom If FSGSBASE reverted is disabled (as Tom did on the command-line), then the RDPID path isn't hit. Fun.