On Mon, Apr 9, 2018 at 1:37 AM, KarimAllah Ahmed <karahmed@xxxxxxxxx> wrote: > + /* > + * Force a nested exit that guarantees that any state capture > + * afterwards by any IOCTLs (MSRs, etc) will not capture a mix of L1 > + * and L2 state. > + * > + * One example where that would lead to an issue is the TSC DEADLINE > + * MSR vs the guest TSC. If the L2 guest is running, the guest TSC will > + * be the L2 TSC while the TSC deadline MSR will contain the L1 TSC > + * deadline MSR. That would lead to a very large (and wrong) "expire" > + * diff when LAPIC is initialized during instance restore (i.e. the > + * instance will appear to have hanged!). > + */ This sounds like a bug in the virtualization of IA32_TSC_DEADLINE. Without involving save/restore, what happens if L2 sets IA32_TSC_DEADLINE (and L1 permits it via the MSR permission bitmap)? The IA32_TSC_DEADLINE MSR is always specified with respect to L1's time domain.