On Tue, Mar 20, 2018 at 03:32:27PM -0300, Eduardo Habkost wrote: > On Tue, Mar 20, 2018 at 06:34:59PM +0100, Vitaly Kuznetsov wrote: > > @@ -1747,6 +1760,15 @@ static int kvm_put_msrs(X86CPU *cpu, int level) > > if (cpu->hyperv_time) { > > kvm_msr_entry_add(cpu, HV_X64_MSR_REFERENCE_TSC, > > env->msr_hv_tsc); > > + > > + if (has_msr_hv_reenlightenment) { > > I see that the current code is inconsistent: some entries check > for has_msr_hv_*, other entries check cpu->hyperv_*. > > I suggest changing all of them (including this one) to check > cpu->hyperv_* instead. > > The difference between both approaches is that checking just > has_msr_hv_* would let a non-cooperating guest prevent itself > from being migrated to an older host by writing a non-zero value > to a MSR, even if hyperv support was not enabled in the VM > configuration at all. I don't think we want that.
Agreed. We accumulated a number of these over time; it's mostly my fault, so I don't feel it's just to ask Vitaly to fix the existing ones, but let's not add new ones. Roman.