virtualization
文章平均质量分 72
francisco_flynn
这个作者很懒,什么都没留下…
展开
-
QEMU线程模型
non-iothread早期的qemu并不支持多线程,它只有一个线程,在这个线程中完成vcpu、设备模拟和事件处理等逻辑;当该线程正在执行vcpu虚拟机的代码时,如果此时虚拟机发生了一个异常或该线程收到了一个信号,则cpu从执行虚拟机的代码切换到qemu代码,然后根据select的返回结果去处理对应的文件描述符,等完成设备的模拟逻辑后,就接着执行虚拟机的代码。iothreadnon-iothread的模型并不能利用多核处理器的性能,假如传入-smp 2,即要虚拟出2个vcpu,此时qemu也只有一个线原创 2020-12-28 17:28:42 · 946 阅读 · 1 评论 -
QEMU 如何处理PCI设备的中断(二)
3. QEMU对X86中断控制器的模拟我们从pc_init1中来分析QEMU虚拟中断控制器的过程。QEMU不仅可以在用户层模拟中断控制器,也可以在kernel中通过kvm来虚拟中断控制器,为方便起见,我们只分析在kvm中虚拟化pic和apic芯片的流程。中断路由表的创建hw/i386/pc_piix.cstruct GSIState{ qemu_irq i8259_irq[16]; qemu_irq ioapic_irq[24]}static void pc_init1(...){原创 2020-12-07 10:26:52 · 1900 阅读 · 0 评论 -
QEMU 如何处理PCI设备的中断(一)
0. 目录本文分两个章节来介绍,共四节:真实PCI设备的中断X86架构下的中断控制器框架QEMU对X86中断控制器的模拟QEMU对虚拟PCI设备的中断处理1. 真实PCI设备的中断PCI总线使用INTA#、INTB#、INTC#、INTD#信号向处理器发出中断请求。这些中断请求信号为低电平有效,并与处理器的中断控制器连接。假设一个处理器系统中,共有3个PCI插槽,这些PCI插槽中的中断引脚和中断控制器的IRQ_PINx引脚可以按照如下图连接。为什么要用这样奇怪的方式连接呢?这是因为一般原创 2020-12-07 10:26:43 · 1274 阅读 · 0 评论 -
QEMU如何虚拟PCI设备
引子PCI(PCIE)设备在PC架构中有着举足轻重的地位,了解PCI总线与PCI设备在QEMU中的工作机制有助于我们了解CPU和设备之间的沟通机制,会对PC系统有更全面的认知,同时对virtio设备的理解也会更有帮助。回顾PCI 设备与总线上图是比较经典的PC架构图,从上图中可以看到CPU之间通过interchip bus连接,然后和I440FX芯片连接,I440FX就是我们熟知的北桥芯片...原创 2020-03-08 19:15:45 · 9487 阅读 · 0 评论 -
Xen和香蕉派的故事
d原创 2019-04-10 12:19:52 · 43712 阅读 · 2 评论