【KVM新概念】 - Paravirtualized End-of-Interrupt Indication (PV-EOI)

背景

X86 PC体系架构中的中断控制器,早先是8259A,现在更普遍使用的是APIC,他们处理中断的流程遵循如下流程:

    1. 外部设备产生一个中断,如果该中断没有被屏蔽掉,中断控制器将IRR寄存器中相应的位置1,表示收到中断,但是还未提交给CPU处理;
    2. 中断控制器将该中断提交给CPU,CPU收到中断请求后,会应答中断控制器;
    3. 中断控制器收到CPU的中断应答后,将IRR寄存器中相应的位清0,并将ISR寄存器相应的位置1,表示CPU正在处理该中断;
    4. 当该中断的处理程序结束以前,需要将中断控制器的EOI寄存器对应的位置1, 表示CPU完成了对该中断的处理;
    5. 中断控制器收到EOI后,ISR寄存器中相应的位清0,允许下次中断;

在虚拟化场景中,该流程至少会导致两次VM Exit: 第一次是VMM截获到设备中断的时候,通知客户机退出,将这个中断注入到客户机中;另外一次是当客户机操作系统处理完该中断后,写中断控制器的EOI寄存器,这是个MMIO操作,也会导致客户机退出。在一个外部IO比较频繁的场景中,外部中断会导致大量的VM Exit, 影响客户机的整体性能。

 

原理

PV-EOI其实就是通过半虚拟化的办法来优化上述的VM Exit影响,virtio也是使用这个思想来优化网络和磁盘;就EOI的优化来说,其思想本质上很简单:

    1. 客户机和VMM协商,首先确定双方是否都能支持PV-EOI特性,如果成功,则进一
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值