摘要: 通常external-interrupt会引起vmexi,如果该external-interrupt就是给Guest的,那么hypervisor就会向Guest注入一个virtual Interrupt,那么哪个irq会被注入呢?(即在Guest IDT indexing的Interrupt vec 阅读全文
posted @ 2021-02-24 12:58 EwanHai 阅读(427) 评论(0) 推荐(0) 编辑
摘要: VFIO QOM对象的构造 Everything in QOM is a device QOM(Qemu Object Model)是QEMU最新的设备模型。QEMU一开始采用ad hoc,每种设备都有不同的表示方式,非常混乱。于是开发了qdev,将所有的模拟设备进行了整合,变成了一种单根结点(系统 阅读全文
posted @ 2021-02-24 12:57 EwanHai 阅读(860) 评论(0) 推荐(1) 编辑
摘要: IOMMU历史知识及与VFIO的联系 在虚拟化普及之前,IOMMU主要提供2种功能,避免bounce buffers的功能,创建连续DMA操作功能。 Bounce Buffers 如果外设的寻址空间小于平台(如PC)的寻址空间,例如外设只支持寻址4GB空间,但是PC支持寻址8GB,如果PC中的驱动程 阅读全文
posted @ 2021-02-24 12:56 EwanHai 阅读(993) 评论(0) 推荐(0) 编辑
摘要: QTAILQ队列数据结构 这种数据结构由两种基本结构构成,分别是QTAILQ_ENTRY和QTAILQ_HEAD,前者表示队列的元素,后者表示队列的头。 #define QTAILQ_ENTRY(type) \ union { \ struct type *tqe_next; /* next ele 阅读全文
posted @ 2021-02-24 12:54 EwanHai 阅读(616) 评论(1) 推荐(0) 编辑
摘要: vfio_realize实际运行过程观测 使用的工具为gdb,将测试网卡通过vfio的形式透传到虚拟机中,查看vfio_realize中对于memory,中断的分配是怎样的。 用gdb启动qemu 在启动qemu之前,已经完成了以下工作: 启动host时添加了intel_iommu=on vfio- 阅读全文
posted @ 2021-02-24 12:53 EwanHai 阅读(1736) 评论(3) 推荐(1) 编辑
摘要: qemu-kvm的ioeventfd机制 Guest一个完整的IO流程包括从虚拟机内部到KVM,再到QEMU,并由QEMU最终进行分发,IO完成之后的原路返回。这样的一次路径称为同步IO,即指Guest需要等待IO操作的结果才能继续运行,但是存在这样一种情况,即某次IO操作只是作为一个通知事件,用于 阅读全文
posted @ 2021-02-24 12:52 EwanHai 阅读(2698) 评论(0) 推荐(0) 编辑
摘要: Linux的eventfd机制 eventfd初始化 Linux继承了UNIX”everything is a file”的思想,所有打开的文件都有一个fd与之对应,与QEMU一样,很多程序都是事件驱动的,也就是select/poll/epoll等系统调用在一组fd上进行监听,当fd状态发生变化时, 阅读全文
posted @ 2021-02-24 12:50 EwanHai 阅读(4052) 评论(0) 推荐(1) 编辑
摘要: qemu-kvm的irqfd机制 irqfd机制与ioeventfd机制类似,其基本原理都是基于eventfd。 ioeventfd机制为Guest提供了向qemu-kvm发送通知的快捷通道,对应地,irqfd机制提供了qemu-kvm向Guest发送通知的快捷通道。 irqfd机制将一个event 阅读全文
posted @ 2021-02-24 12:47 EwanHai 阅读(3148) 评论(0) 推荐(0) 编辑
摘要: BAR寄存器内容被BIOS修改 通过trace Intel网卡的VFIO透传过程,发现在透传到虚拟机之后,该网卡的BAR0中的内容从0xdf200000变为了0xfdba0000,这说明一定在透传的某个环节中,改变了该网卡的虚拟配置空间中的BAR0的内容。 为什么改变的不是该网卡的实际配置空间中的内 阅读全文
posted @ 2021-02-24 12:44 EwanHai 阅读(1094) 评论(0) 推荐(0) 编辑
摘要: 中断虚拟化-内核端 由于历史原因,QEMU和KVM均独立实现了PIC、APIC(IOAPIC+LAPIC).本文档试图说明清楚KVM中实现的PIC和APIC的逻辑。 本文档首先针对PIC、APIC、“Interrupt-Window Exiting”、“Virtual Interrupt Deliv 阅读全文
posted @ 2021-02-24 11:36 EwanHai 阅读(2310) 评论(3) 推荐(0) 编辑