首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过VFIO对指定设备的中断处理

通过VFIO对指定设备的中断处理
EN

Stack Overflow用户
提问于 2015-04-05 19:48:20
回答 1查看 3.1K关注 0票数 3

我试图了解通过VFIO分配给VM (Guest )的设备的中断处理是如何工作的,但不知道它是如何发生的?

比方说,我有一个通过VFIO直接分配(设备通过)给来宾VM的设备,而这个特定设备的硬件中断呢?

接下来会发生什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-11 00:13:15

主机内核接收来自设备的中断,并将其路由到由vfio总线驱动程序、vfio或vfio平台注册的中断处理程序。该中断处理程序简单地将中断中继到用户(QEMU)通过ioctl配置的事件to。当使用KVM时,用户可以将中断信令事件从vfio直接连接到KVM中的中断注入irqfd。这避免了将中断弹出到QEMU用户空间,以便注入到来宾中,尽管如果KVM支持不可用,则该路径是一个选项。

对于级别触发的中断,我们还必须屏蔽主机中的中断,以防止设备继续中断主机,而中断则由来宾提供服务。因此,我们在发送事件消息之前屏蔽中断,并使用名为重采样irqfd的略有不同的KVM irqfd,它注册第二个eventfd-irqfd对,用于从KVM向vfio发送解除掩码的信号。

为了提高效率,各种硬件技术都加强了这一点。Intel APICv允许在某些情况下直接将中断注入客户而不需要vmexit。这完全是在KVM内部处理的。英特尔发布的中断将允许中断完全绕过主机时,正确的vCPU运行在处理器上,接收硬件中断。ARM IRQ转发允许客人管理中断的无掩蔽,避免了重采样irqfd开销。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29461518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档