Message ID | 20210422161130.652779-4-vkuznets@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | i386: KVM: expand Hyper-V features early | expand |
On Thu, Apr 22, 2021 at 06:11:14PM +0200, Vitaly Kuznetsov wrote: > We have all the required data in X86CPU already and as we are about to > split hyperv_handle_properties() into hyperv_expand_features()/ > hyperv_fill_cpuids() we can remove the blind copy. The functional change > is that QEMU won't pass CPUID leaves it doesn't currently know about > to the guest but arguably this is a good change. > > Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> This makes hv-passthrough less useful for debugging and development, but safer for using in production. I assume we want to eventually make hv-passthrough supported in production when live migration support isn't required. I'll trust your judgement here and assume this is really a good change, but maybe this should be documented more explicitly in the hv-passthrough section at docs/hyperv.txt? Anyway: Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> > --- > target/i386/kvm/kvm.c | 9 --------- > 1 file changed, 9 deletions(-) > > diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c > index afd173514da1..7c751185491f 100644 > --- a/target/i386/kvm/kvm.c > +++ b/target/i386/kvm/kvm.c > @@ -1207,9 +1207,6 @@ static int hyperv_handle_properties(CPUState *cs, > } > > if (cpu->hyperv_passthrough) { > - memcpy(cpuid_ent, &cpuid->entries[0], > - cpuid->nent * sizeof(cpuid->entries[0])); > - > c = cpuid_find_entry(cpuid, HV_CPUID_VENDOR_AND_MAX_FUNCTIONS, 0); > if (c) { > cpu->hyperv_vendor_id[0] = c->ebx; > @@ -1309,12 +1306,6 @@ static int hyperv_handle_properties(CPUState *cs, > goto free; > } > > - if (cpu->hyperv_passthrough) { > - /* We already copied all feature words from KVM as is */ > - r = cpuid->nent; > - goto free; > - } > - > c = &cpuid_ent[cpuid_i++]; > c->function = HV_CPUID_VENDOR_AND_MAX_FUNCTIONS; > c->eax = hyperv_feat_enabled(cpu, HYPERV_FEAT_EVMCS) ? > -- > 2.30.2 >
diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c index afd173514da1..7c751185491f 100644 --- a/target/i386/kvm/kvm.c +++ b/target/i386/kvm/kvm.c @@ -1207,9 +1207,6 @@ static int hyperv_handle_properties(CPUState *cs, } if (cpu->hyperv_passthrough) { - memcpy(cpuid_ent, &cpuid->entries[0], - cpuid->nent * sizeof(cpuid->entries[0])); - c = cpuid_find_entry(cpuid, HV_CPUID_VENDOR_AND_MAX_FUNCTIONS, 0); if (c) { cpu->hyperv_vendor_id[0] = c->ebx; @@ -1309,12 +1306,6 @@ static int hyperv_handle_properties(CPUState *cs, goto free; } - if (cpu->hyperv_passthrough) { - /* We already copied all feature words from KVM as is */ - r = cpuid->nent; - goto free; - } - c = &cpuid_ent[cpuid_i++]; c->function = HV_CPUID_VENDOR_AND_MAX_FUNCTIONS; c->eax = hyperv_feat_enabled(cpu, HYPERV_FEAT_EVMCS) ?
We have all the required data in X86CPU already and as we are about to split hyperv_handle_properties() into hyperv_expand_features()/ hyperv_fill_cpuids() we can remove the blind copy. The functional change is that QEMU won't pass CPUID leaves it doesn't currently know about to the guest but arguably this is a good change. Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> --- target/i386/kvm/kvm.c | 9 --------- 1 file changed, 9 deletions(-)