如何在 libvirt/qemu 中设置 CPU EDX 寄存器?

如何在 libvirt/qemu 中设置 CPU EDX 寄存器?

我需要按照如下方式在 libvirt 中设置 CPU EDX 寄存器:https://support.microsoft.com/en-gb/help/2902739/stop-error-0x109-critical-structure-corruption-on-a-vmware-virtual-mac但是我找不到 libvirt vm xml 或文件中的选项/usr/share/libvirt/cpu_map.xml

任何帮助都将受到赞赏。

答案1

即使您看到相同的蓝屏错误消息,我也非常怀疑 WRT VMWare 中描述的修复是否适用于 KVM。支持文章正在讨论特定版本的 VMWare 中的特定错误,而 KVM 中不太可能存在该错误。更有可能的是,存在导致相同最终结果的其他问题。

尽管如此,如果你真的想尝试一下,IIUC,VMware 值----:0---:----:----:----:----:----:----似乎是 EDX 寄存器值的二进制字符串。这对应于十六进制代码0x8000000。根据 libvirt CPU ID 映射数据库,这应该是指 rdtscp 功能

<feature name='rdtscp'>
  <cpuid eax_in='0x80000001' edx='0x08000000'/>
</feature>

是否为客户机启用此功能取决于<cpu>客户机 XML 中是否配置了任何型号。假设您确实配置了 CPU 型号,您可以按如下方式禁用此功能:

<cpu>
   ...
   <feature name="rdtscp" policy="disable"/>
   ... 
</cpu>

有关详细信息,请参阅https://libvirt.org/formatdomain.html#elementsCPU

相关内容