hello
> incomplete because it can return 0 for data. Can you try this:
>
> diff --git a/target/i386/kvm.c b/target/i386/kvm.c
> index f524e7d929..4878ffb90b 100644
> --- a/target/i386/kvm.c
> +++ b/target/i386/kvm.c
> @@ -2002,14 +2002,9 @@ static int kvm_put_msrs(X86CPU *cpu, int level)
> #endif
>
> /* If host supports feature MSR, write down. */
> - if (kvm_feature_msrs) {
> - int i;
> - for (i = 0; i < kvm_feature_msrs->nmsrs; i++)
> - if (kvm_feature_msrs->indices[i] == MSR_IA32_ARCH_CAPABILITIES)
> {
> - kvm_msr_entry_add(cpu, MSR_IA32_ARCH_CAPABILITIES,
> + if (kvm_arch_get_supported_msr_feature(kvm_state, MSR_IA32_ARCH_CAPABILI
> TIES)) {
> + kvm_msr_entry_add(cpu, MSR_IA32_ARCH_CAPABILITIES,
> env->features[FEAT_ARCH_CAPABILITIES]);
> - break;
> - }
> }
>
> /*
I'm getting the same error message at start time (patch applied to
official qemu-3.1.0-rc1 tarball):
----8<----
qemu: error: failed to set MSR 0x10a to 0x0
qemu:
/home/balducci/tmp/install-us-d/qemu-3.1.0-rc1.d/qemu-3.1.0-rc1/target/i386/kvm.c:2206:
kvm_put_msrs: Assertion `ret == cpu->kvm_msr_buf->nmsrs' failed.
Aborted
---->8----
thanks a lot
ciao
-gabriele