我已阅读以下有关用户I / O的链接: http://www.hep.by/gnu/kernel/uio-howto/
并关注http://nairobi-embedded.org/uio_example.html。
我正在使用ivshmem设备将内存从主机映射到来宾(在QEmu中)。我正在使用的客户端驱动程序是来自https://www.gitorious.org/nahanni/guest-code的kernel_module / uio / uio_ivshmem.c。
我已成功在多个guest虚拟机之间共享内存,我还可以使用上面git存储库中的ivshmem-server从主机向guest虚拟机发出中断。
但我无法弄清楚如何从访客“中断”注意到写入内存已完成。即向另一位客人发出信号,告知其应该阅读第一位客人所写的内容。
我做错了什么?有没有办法使用UIO发送中断或者我只能接收?我怎么注意到我已经完成了写作/阅读?
答案 0 :(得分:2)
好的,我现在已经弄明白为什么我不能发送中断了。
我确实尝试过使用测试应用程序,但是,正如你在这篇(http://lists.gnu.org/archive/html/qemu-devel/2014-08/msg05388.html)帖子中读到的那样,内核中的补丁打破了uio_ivshmem.c。
此补丁使ivshmem无法映射BAR0,后者用于发送中断。 BAR2仍然很好,可用于共享数据,但中断不起作用。