我是kvm的新手,当有人处理外部中断或模拟设备中断时,有人可以解释它的进程吗?
由于 摩
答案 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虚拟机返回主机。
所以流程是
客户操作系统在VMX非root模式下使用CPU。
CPU意识到中断即将来临。
CPU的控制权返回到以VMX根模式运行的主机。 (VM退出)
主机(KVM)处理中断。
主机执行了VMLAUNCH指令,让CPU再次转移到VMX非root模式运行 访客代码。
重复1次。