2015-10-13 54 views
1

我試圖學習Qemu-KVM以便將它們擴展爲監控應用程序。我可以看到,在qemu/kvm-all.c一般控制流程是:什麼KVM功能控制Qemu和

kvm_init() : 
kvm_ioctl(s, KVM_CREATE_VM, 0); 
kvm_init_vcpu() : kvm_vm_ioctl(s, KVM_CREATE_VCPU, env->cpu_index); 
kvm_cpu_exec() : 
do { 
kvm_vcpu_ioctl(env, KVM_RUN, 0); 
switch (run->exit_reason) { // giving control to Qemu 
case KVM_EXIT_IO: 
case KVM_EXIT_MMIO: 
... // omitted 
} while(); 

我無法看到卻又是當(什麼KVM功能的源代碼)返回(或電話)Qemu中(用戶空間)來處理KVM退出?

回答

1

事實上,我發現是的Qemu只是等待(阻塞)的kvm_vcpu_ioctl(ENV,KVM_RUN,0)返回。 所以這是當KVM將控制權歸還給Qemu時。