baldu...@units.it writes: > hello > > I'm building qemu from source and happily using it since a bit > (2.3.0) > > Since 3.1.0-rc0 (including latest 3.1.0-rc1) I'm no more able to start > qemu, getting: > > ----8<---- > install:115> qemu > 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-rc0/target/i386/kvm.c:2185: > kvm_put_msrs: Assertion `ret == cpu->kvm_msr_buf->nmsrs' failed. > Aborted > ---->8---- > I believe the check on whether MSR_IA32_ARCH_CAPABILITIES is present is 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_CAPABILITIES)) { + kvm_msr_entry_add(cpu, MSR_IA32_ARCH_CAPABILITIES, env->features[FEAT_ARCH_CAPABILITIES]); - break; - } } /* > I have no idea about what the reason might be, apologies. > > Actually, I have found a recent (2018-10-16) post which might be > related to this (it mentions the same error message from qemu): > https://lkml.org/lkml/2018/10/16/440; but I'm not in the position to > go through. AFAICS, the commit mentioned in the link is present in the > 4.19.2 kernel I'm using, so...? > > I can add that 3.0.0 works nicely (everything else unchanged, > including running kernel 4.19.2) > > OTOH, 3.1.0-rc0 dumps the same error message if I boot into 4.17.14 or > 4.18.16 kernels. > > I enclose my specs hoping that somebody can spot where the problem > might be. I will be happy to send any other detail which might be > useful. > > I suspect that this might be some problem on my side, as I couldn't > find any similar report (apart some old (qemu-2.8.50) threads, that > didn't help) > > > thanks a lot in advance for any hint/help > > ciao > gabriele > > > Here are my specs: > > # -------------------------------- > # command to run qemu is: > qemu -m 2G /opt/windog \ > -accel kvm,thread=multi \ > -netdev user,id=net0,smb=/home/balducci \ > -device rtl8139,netdev=net0 > > # -------------------------------- > # qemu build configuration: > --prefix=/opt/stow.d/versions/qemu-3.1.0-rc1/usr > --libdir=/opt/stow.d/versions/qemu-3.1.0-rc1/usr/lib64 > --sysconfdir=/opt/stow.d/versions/qemu-3.1.0-rc1/etc > --localstatedir=/var/run > --docdir=/opt/stow.d/versions/qemu-3.1.0-rc1/usr/share/doc/qemu > --target-list=x86_64-softmmu > --audio-drv-list=alsa > > > # -------------------------------- > install:154> uname -sr > Linux 4.19.2 > > # -------------------------------- > install:155> cat /proc/cpuinfo > processor : 0 > vendor_id : AuthenticAMD > cpu family : 21 > model : 48 > model name : AMD Athlon(tm) X4 860K Quad Core Processor > stepping : 1 > microcode : 0x6003106 > cpu MHz : 3473.492 > cache size : 2048 KB > physical id : 0 > siblings : 4 > core id : 0 > cpu cores : 2 > apicid : 16 > initial apicid : 0 > fpu : yes > fpu_exception : yes > cpuid level : 13 > wp : yes > flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca > cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt > pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid > aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 popcnt aes > xsave avx f16c lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a > misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 tce nodeid_msr tbm > topoext perfctr_core perfctr_nb bpext ptsc cpb hw_pstate ssbd vmmcall > fsgsbase bmi1 xsaveopt arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean > flushbyasid decodeassists pausefilter pfthreshold overflow_recov > bugs : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 > spec_store_bypass > bogomips : 7380.73 > TLB size : 1536 4K pages > clflush size : 64 > cache_alignment : 64 > address sizes : 48 bits physical, 48 bits virtual > power management: ts ttp tm 100mhzsteps hwpstate cpb eff_freq_ro [13] > > [...cpus 1 2 3 omitted...] > > > # -------------------------------- > install:156> egrep KVM .config-4.19.2 > CONFIG_HAVE_KVM=y > CONFIG_HAVE_KVM_IRQCHIP=y > CONFIG_HAVE_KVM_IRQFD=y > CONFIG_HAVE_KVM_IRQ_ROUTING=y > CONFIG_HAVE_KVM_EVENTFD=y > CONFIG_KVM_MMIO=y > CONFIG_KVM_ASYNC_PF=y > CONFIG_HAVE_KVM_MSI=y > CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y > CONFIG_KVM_VFIO=y > CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y > CONFIG_KVM_COMPAT=y > CONFIG_HAVE_KVM_IRQ_BYPASS=y > CONFIG_KVM=y > # CONFIG_KVM_INTEL is not set > CONFIG_KVM_AMD=y > > [of course, I can send the whole kernel configuration file, if needed]