VIRTIO设备中断包括vq中断和config中断。Vq中断用于通知Guest已完成数据的处理,虚拟机中可以完成IO请求。Vq中断的模拟是通过irqfd实现的,它将虚拟机中断与irqfd关联上(KVM_SET_GSI_ROUTING和KVM_IRQFD),当虚拟机中访问特定内存时,在KVM中模拟注入中断。
通过KVM_SET_GSI_ROUTING和KVM_IRQFD将中断关联到irqfd。当Host完成IO时通过vritio_notify访问特定的内存(MSIX中断),它最终在KVM中模拟中断注入。