0

我是kvm的新手,当客人处理外部中断或模拟设备中断时,有人可以解释它的过程吗?

谢谢阿莫斯

4

2 回答 2

3

在 x86 架构中,Intel 在这种情况下,大部分中断都会导致 CPU VM 退出,这意味着 CPU 的控制权将从 guest 回到主机。

所以过程是

  1. 来宾操作系统在 VMX 非根模式下使用 CPU。

  2. CPU 知道中断即将到来。

  3. CPU 的控制权返回给以 VMX 根模式运行的主机。(虚拟机退出)

  4. 主机 (KVM) 处理中断。

  5. 主机执行 VMLAUNCH 指令让 CPU 再次转换到 VMX 非 root 模式以运行来宾代码。

  6. 重复 1。

于 2013-09-03T14:34:17.000 回答
2

如果您是 kvm 新手,您应该首先阅读一些关于 kvm 模块如何工作的论文(我假设您了解虚拟化的基本概念)。它如何使用 qemu 进行 i/o 仿真等。我建议您阅读这些论文:

kvm:Linux 虚拟机监视器:https : //www.kernel.org/doc/mirror/ols2007v1.pdf#page=225 基于内核的虚拟机技术:http ://www.fujitsu.com/downloads/MAG/ vol47-3/paper18.pdf KVM:基于内核的虚拟化驱动程序:http ://www.linuxinsight.com/files/kvm_whitepaper.pdf

这些是开始 kvm 的人写的论文。(它们简短而甜蜜:))
在此之后,您应该开始查看源代码中的 kvm 文档,尤其是文件 api.txt,它非常好。

然后我认为您可以跳入源代码以了解事物的实际工作方式。

干杯

于 2012-06-27T15:01:31.897 回答