VMX 模式是否具有检测以前不可捕获的敏感指令的能力?

Does the VMX mode have the capability to detect previously non-trappable sensitive instructions?

VMX 模式是否为虚拟化系统架构师提供了检测以前不可捕获的敏感指令的能力?

不,并非在所有情况下。相反,VMX 模式会更改其中一些指令的行为,使它们不敏感。

以下是敏感指令在 VMX 非根模式下的行为方式的几个示例:

  • SMSW: 在VMX模式下不会陷阱,但会替代 VMM 为某些位的实际值指定的值。
  • POPF:指令的行为没有改变,但是控制 VMCS 中的控件可以覆盖中断,以防止 来宾从影响 VMM 或其他来宾更改为 IF。

此参考在第 28 页有一个敏感的 x86 指令列表:https://www.cs.cmu.edu/~410-s14/lectures/L30_Virtualization.pdf。 Intel SDM 第 3 卷第 25 章详细描述了每条指令的行为变化。

我会说是的。根据 this Virtualization and Virtual Machines presentation 的第 13 页到第 17 页,硬件虚拟化似乎是解决该问题的一种尝试。

pdf @prl posted 在幻灯片 45 上也说:

if a guest kernel runs a sensitive instruction, hardware does a 'VM exit' back to the VMM, indicates which instruction trapped