2015-10-13 53 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时。