2017-07-23 12:54 GMT+03:00 Matwey V. Kornilov <matwey.korni...@gmail.com>: > 2017-02-08 11:49 GMT+03:00 Paolo Bonzini <bonz...@gnu.org>: >>> Does qemu follow recommendations from section 4.3? >> >> All that QEMU does is initialize MSR values and QEMU is talking to KVM, >> not to the processor; KVM in turn talks to the host kernel's perf >> subsystem. >> >> It's the host kernel's perf subsystem that needs to follow Intel's >> recommendation. In particular, QEMU is setting CPUID to the values >> retrieved by >> >> perf_get_x86_pmu_capability(&cap); > > I can not find this function mentioned in qemu master sources. >
Ok, I found this place in kvm kernel module. But it doesn't do what you expect it to do. It just reassembles 0xA EAX from previously parsed data. IA32_MISC_ENABLE is not accessed anywhere here. > The only thing I see is that has_msr_architectural_pmu is set to be > true in kvm_arch_init_vcpu() if 0xA EAX has non-zero version. This is > not enough according to the Intel specs. > >> >> so perhaps it's perf_get_x86_pmu_capability that misreads the >> performance monitoring capabilities provided by ESX. Please attach >> dmesg logs from starting the host with loglevel=9, as well as "x86info >> -a" output from the host, to see if perf misses some problematic >> CPUID/MSR combination. >> >> -- >> You received this bug notification because you are subscribed to the bug >> report. >> https://bugs.launchpad.net/bugs/1661386 >> >> Title: >> Assertion `ret == cpu->kvm_msr_buf->nmsrs' failed >> >> Status in QEMU: >> New >> >> Bug description: >> Hello, >> >> >> I see the following when try to run qemu from master as the following: >> >> # ./x86_64-softmmu/qemu-system-x86_64 --version >> QEMU emulator version 2.8.50 (v2.8.0-1006-g4e9f524) >> Copyright (c) 2003-2016 Fabrice Bellard and the QEMU Project developers >> # ./x86_64-softmmu/qemu-system-x86_64 -machine accel=kvm -nodefaults >> -no-reboot -nographic -cpu host -vga none -kernel .build.kernel.kvm >> -initrd .build.initrd.kvm -append 'panic=1 no-kvmclock console=ttyS0 >> loglevel=7' -m 1024 -serial stdio >> qemu-system-x86_64: /home/matwey/lab/qemu/target/i386/kvm.c:1849: >> kvm_put_msrs: Assertion `ret == cpu->kvm_msr_buf->nmsrs' failed. >> >> First broken commit has been bisected: >> >> commit 48e1a45c3166d659f781171a47dabf4a187ed7a5 >> Author: Paolo Bonzini <pbonz...@redhat.com> >> Date: Wed Mar 30 22:55:29 2016 +0200 >> >> target-i386: assert that KVM_GET/SET_MSRS can set all requested MSRs >> >> This would have caught the bug in the previous patch. >> >> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> >> >> My cpuinfo is the following: >> >> processor : 0 >> vendor_id : GenuineIntel >> cpu family : 6 >> model : 44 >> model name : Intel(R) Xeon(R) CPU X5675 @ 3.07GHz >> stepping : 2 >> microcode : 0x14 >> cpu MHz : 3066.775 >> cache size : 12288 KB >> physical id : 0 >> siblings : 2 >> core id : 0 >> cpu cores : 2 >> apicid : 0 >> initial apicid : 0 >> fpu : yes >> fpu_exception : yes >> cpuid level : 11 >> wp : yes >> flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca >> cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm >> constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc >> aperfmperf pni pclmulqdq vmx ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor >> lahf_lm ida arat epb dtherm tpr_shadow vnmi ept vpid >> bugs : >> bogomips : 6133.55 >> clflush size : 64 >> cache_alignment : 64 >> address sizes : 40 bits physical, 48 bits virtual >> power management: >> >> To manage notifications about this bug go to: >> https://bugs.launchpad.net/qemu/+bug/1661386/+subscriptions > > > > -- > With best regards, > Matwey V. Kornilov -- With best regards, Matwey V. Kornilov -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1661386 Title: Assertion `ret == cpu->kvm_msr_buf->nmsrs' failed Status in QEMU: New Bug description: Hello, I see the following when try to run qemu from master as the following: # ./x86_64-softmmu/qemu-system-x86_64 --version QEMU emulator version 2.8.50 (v2.8.0-1006-g4e9f524) Copyright (c) 2003-2016 Fabrice Bellard and the QEMU Project developers # ./x86_64-softmmu/qemu-system-x86_64 -machine accel=kvm -nodefaults -no-reboot -nographic -cpu host -vga none -kernel .build.kernel.kvm -initrd .build.initrd.kvm -append 'panic=1 no-kvmclock console=ttyS0 loglevel=7' -m 1024 -serial stdio qemu-system-x86_64: /home/matwey/lab/qemu/target/i386/kvm.c:1849: kvm_put_msrs: Assertion `ret == cpu->kvm_msr_buf->nmsrs' failed. First broken commit has been bisected: commit 48e1a45c3166d659f781171a47dabf4a187ed7a5 Author: Paolo Bonzini <pbonz...@redhat.com> Date: Wed Mar 30 22:55:29 2016 +0200 target-i386: assert that KVM_GET/SET_MSRS can set all requested MSRs This would have caught the bug in the previous patch. Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> My cpuinfo is the following: processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 44 model name : Intel(R) Xeon(R) CPU X5675 @ 3.07GHz stepping : 2 microcode : 0x14 cpu MHz : 3066.775 cache size : 12288 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm ida arat epb dtherm tpr_shadow vnmi ept vpid bugs : bogomips : 6133.55 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1661386/+subscriptions