On 30/11/20 14:35, Maxim Levitsky wrote:
+ if (guest_cpuid_has(vcpu, X86_FEATURE_TSC_ADJUST)) { + tsc_state.tsc_adjust = vcpu->arch.ia32_tsc_adjust_msr; + tsc_state.flags |= KVM_TSC_STATE_TSC_ADJUST_VALID; + }
This is mostly useful for userspace that doesn't disable the quirk, right?
+ kvm_get_walltime(&wall_nsec, &host_tsc); + diff = wall_nsec - tsc_state.nsec; + + if (diff < 0 || tsc_state.nsec == 0) + diff = 0; +
diff < 0 should be okay. Also why the nsec==0 special case? What about using a flag instead?
Paolo