关于kvm中的guest用户来处理外部中断和外部中断

时间:2012-04-15 14:29:53

标签: linux-kernel virtualization kvm

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

由于 摩

2 个答案:

答案 0 :(得分: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非常好。

然后我认为您可以跳转到源代码中来了解事情的实际工作方式。

干杯

答案 1 :(得分:2)

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

所以流程是

  1. 客户操作系统在VMX非root模式下使用CPU。

  2. CPU意识到中断即将来临。

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

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

  5. 主机执行了VMLAUNCH指令,让CPU再次转移到VMX非root模式运行 访客代码。

  6. 重复1次。