【问题标题】:how to enable PMU in KVM guest如何在 KVM 来宾中启用 PMU
【发布时间】:2018-03-11 11:29:39
【问题描述】:

我在联想 X1 笔记本电脑上运行 KVM/QEMU。

来宾操作系统是 Ubuntu 15.04 x86_64。

现在,我想在客户操作系统中运行“perf”命令,但我在 dmesg 的客户操作系统中发现了以下内容。

...

[0.055442] smpboot: CPU0: Intel Xeon E3-12xx v2 (Ivy Bridge) (fam: 06, model: 3a, stepping: 09)

[0.056000] 性能事件:不支持 p6 CPU 型号 58 无 PMU 驱动程序,仅软件事件。

[0.057602] x86:启动 SMP 配置:

[0.058686] .... 节点 #0,CPU:#1

[0.008000] kvm-clock: cpu 1, msr 0:1ffd6041, 辅助 cpu 时钟

... 因此,perf 命令无法在客户操作系统中处理硬件 PMU 事件。

如何启用从主机到 Ubuntu 客户机的硬件 PMU?

谢谢,

-淘

【问题讨论】:

    标签: linux virtualization kvm


    【解决方案1】:

    页面https://github.com/mozilla/rr/wiki/Building-And-Installing 提供了一些如何启用访客 PMU 的提示:

    Qemu:在 QEMU 命令行上使用

     -cpu host
    

    Libvirt/KVM:在域 XML 定义中指定 CPU 直通:

     <cpu mode='host-passthrough'/>
    

    https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_tuning_and_optimization_guide/sect-virtualization_tuning_optimization_guide-monitoring_tools-vpmu 中的相同建议

    我将&lt;cpu mode='host-passthrough'/&gt; 行编辑为/etc/libvirt/qemu/my_vm_name.xml 文件而不是&lt;cpu&gt;...&lt;/cpu&gt; 块。

    (在 virt-manager 中使用“host-passthrough”作为 CPU “Model:”字段 - http://blog.wikichoon.com/2016/01/using-cpu-host-passthrough-with-virt.html

    现在 PMU 可以工作,在 VM 中使用 perf stat echo 进行测试,/proc/cpuinfo 中有“arch_perfmon”,dmesg|grep PMU 中启用了 PMU。

    根据/var/log/libvirt/qemu/vm_name.log使用了Qemu的-cpu host选项:

    /usr/bin/kvm-spice ... -machine ...,accel=kvm,... -cpu host ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-29
      • 2018-01-19
      • 1970-01-01
      • 2022-06-24
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多