2015年(123)
发布时间:2015-06-21 11:50:02
qemu-kvm一般会有4个线程,主线程是io thread,还有一个vcpu thread,一个signal thread。 对于io thread,可以从kvm_main_loop(qemu-kvm.c)开始看: 两个pipe是比较重要的一点: 1. 它调用qemu_eventfd创建一个event pipe,pipe read fd用qemu_set_fd _hadnler2注册一个read fd handler,也就是.........【阅读全文】
发布时间:2015-06-21 11:49:58
一个操作系统要跑起来,必须有time tick,它就像是身体的脉搏。普通情况下,OS time tick由PIT(i8254)或APIC Timer设备提供—PIT定期(1ms in Linux)产生一个timer interrupt,作为global tick,APIC Timer产生一个local tick。在虚拟化情况下,必须为guest OS模拟一个PIT和APIC Timer。 模拟的PIT和APIC Ti.........【阅读全文】
发布时间:2015-06-21 11:49:54
Posted Interrupt 允许APIC中断直接注入到guest而不需要VM-Exit- 需要给guest传递中断的时候,如果vcpu正在运行,那么更新posted-intrrupt请求位图,并向vcpu发送通知,vcpu自动处理该中断,不需要软件干预- 如果vcpu没有在运行或者已经有通知事件pending,那么什么都不做,中断会在下次VM-Entry的时.........【阅读全文】
发布时间:2015-06-21 11:49:48
前言:本文针对intel VT-X技术,结合QEMU和KVM代码以及自己写的实例详细分析了一个虚拟设备的IO虚拟化过程。虽然现在KVM虚拟化性能非常好,发展也非常迅速,但是资料相对比较少,理论知识不是很成熟,其中理解上可能会有些偏差,希望大家指出并与本人联系和讨论. 联系方式:EMAIL:cdutshawn@gmail.com QQ:15019747.........【阅读全文】