查看原文
其他

VMware EVC的BIOS中(VT、XD、AES)和Monitor/Mwait功能的关系

kernelry twt企业IT社区 2022-07-03

业务环境


客户需求

开启VMware EVC 功能


遇到问题

服务器BIOS设置中的VT、XD、AES三大功能已经开启,为何配置VMware EVC时还有未开启前的报错?


解决办法

再次进入BIOS设置,将CPU的Monitor/Mwait功能设置为Enabled。

开机后再次开启EVC功能,则成功。


Monitor/Mwait与VT、XD、AES的关系

-Monitor/Mwait介绍

Monitor指令:MONITOR EAX, ECX, EDX
---设置硬件要监视的线性地址范围,并激活监视器。地址范围应该是写回内存缓存型。
Mwai指令:MwAIT EAX, ECX
---这是一个提示,允许处理器停止指令执行,并进入取决于具体版本的优化状态,直到发生某类事件。

(引用自:中国科学院青岛生物能源与过程研究所超级计算中心)

在以上两个指令的使用方式中,EAX寄存器是在Intel IA32架构中通过执行CPUID命令,把EAX作为输入参数。当EAX=0时,将返回CPU的基本信息和制造商信息;当EAX=1时,会将CPU的版本信息返回给EAX寄存器,将功能信息返回给EDX寄存器。

EDX寄存器中的功能位则将CPU支持的各项功能用1来标识支持,EDX寄存器中存放的功能信息就包括了一些功能,比如超线程、 SSSE3和SSE4.1指令以及NX/XD CPU安全功能,其中XD功能是EVC要求启用的。

-VT介绍

VT全称为Virtualization Technology,是Intel的一项虚拟化技术,有VMX root operation 和 VMX non-root operation两种模式,两种模式都支持Ring 0 ~ Ring 3 这 4 个运行级别。ESXi可以运行在VMX root operation模式下,虚拟机运行在VMX non-root operation模式下。

-XD介绍

XD全称为Excute Disable Bit,是一项数据执行保护技术,当虚拟机需要访问内存区域时,ESXi主机中一部分的内存区域被标识为从不执行,处理器将禁止在该被保护的区域内运行任何代码,这种技术可防止大多数的缓存溢出式攻击。

-AES介绍

AES 是一种针对加密计算的CPU测试。

其中,启动了Monitor/Mwait指令,CPU才能支持XD功能,在ESXi3.0以后的版本,默认启用了XD功能的支持。

假如你在以后的虚拟化环境中遇到类似的问题,并且使用了Intel的CPU,请尝试开启Monitor/Mwait功能。


社区会员评论补充:

@noxudu:遇到过一样的问题,电话咨询过华为,开了mwait就好了.


----------------


更多相关主题文章,请点击阅读原文


长按二维码关注公众号

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存