简体   繁体   English

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

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

VMX模式是否为Virtualisation Systems Architect提供了检测以前不可捕获的敏感指令的功能?

No, not in all cases. 不,不是在所有情况下。 Instead VMX mode changes the behavior of some of these instructions so that they are not sensitive. 相反,VMX模式会更改其中某些指令的行为,以使它们不敏感。

Here are a couple examples of how sensitive instructions behave in VMX non-root mode: 以下是一些示例,说明敏感指令在VMX非根模式下的行为:

  • SMSW : it doesn't trap when in VMX mode, but it substitutes values specified by the VMM for the actual values of certain bits. SMSW :它在VMX模式下不会陷阱,但它会将VMM指定的值替换为某些位的实际值。
  • POPF : the behavior of the instruction doesn't change, but control of interrupts can be overridden by controls in the VMCS, to prevent guest changes to IF from affecting the VMM or other guests. POPF :指令的行为不会改变,但VMCS中的控件可以覆盖对中断的控制,以防止guest虚拟机更改为影响VMM或其他guest虚拟机。

This reference has a list of sensitive x86 instructions on page 28: https://www.cs.cmu.edu/~410-s14/lectures/L30_Virtualization.pdf . 此参考有一个敏感的x86指令列表(第28页): https//www.cs.cmu.edu/~410-s14/lectures/L30_Virtualization.pdf Volume 3, chapter 25 of the Intel SDM has a detailed description of the change in behavior of every instruction. 英特尔SDM第3卷第25章详细描述了每条指令的行为变化。

I'd say yes. 我会说是的。 According to pages 13 through 17 of this Virtualization and Virtual Machines presentation , hardware virtualization seems to be an attempt to solve that problem. 根据虚拟化和虚拟机演示文稿的第13页到第17页,硬件虚拟化似乎是尝试解决该问题。

The pdf @prl posted also says on slide 45: 发布pdf @prl也在幻灯片45中说:

if a guest kernel runs a sensitive instruction, hardware does a 'VM exit' back to the VMM, indicates which instruction trapped 如果客户内核运行敏感指令,则硬件将“VM退出”返回VMM,指示捕获的指令

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在多个CPU中结合使用VMX和非VMX - Combination of VMX and Non VMX in multiple CPU's 是否可以在VM中使用VMX CPU指令? - Is it possible to use VMX CPU instructions inside VM? 如果 x86-64 中没有兼容模式开关,我是否保证不会遇到非 64 位指令? - Am I guaranteed to not encounter non-64-bit instructions if there are no compatibility mode switches in x86-64? KVM如何在Intel VMX中调度多个VM? - How does KVM schedule multiple VMs in Intel VMX? 管理程序如何处理从非 VM 实例的主机进程执行的敏感指令? - How does Hypervisor deal with sensitive instructions executed from host process that is not VM-instance? 假设没有非时间指令,`xchg`是否包含`mfence`? - Does `xchg` encompass `mfence` assuming no non-temporal instructions? 为什么 GCC 在 printf 调用之前插入看似非必要的指令? - Why does GCC insert seemingly non-essential instructions before a printf call? 请解释虚拟化中敏感指令的问题及其解决方法 - Please explain the issue of sensitive instructions in Virtualization and how it is resolved 考虑到指令的长度不同,CPU如何知道下一条指令应读取多少字节? - How does the CPU know how many bytes it should read for the next instruction, considering instructions have different lenghts? 逻辑NEG和AND指令后,EDX具有哪个值? - Which value does EDX have after logic NEG and AND instructions?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM