KVM-PPC初始化过程
KVM 官方主页上已经宣称支持 PowerPC 440,包括 Host 和 Guest 皆支持。查看最新的代码树,BOOKE 和 E500 似乎已经支持(未验证)。因 PowerPC 440 与 E500 (BOOKE) 皆未实现硬件虚拟化辅助,故 KVM-PPC 采用经典的陷入-模拟方法实现全虚拟化。
KVM-PPC 初始化过程如下:
1. 加载 kvm.ko,该模块导出设备 /dev/kvm,该设备是一个字符设备,只有一个 ioctl 接口 (virt/kvm/kvm_main.c)
2. qemu (qemu-system-ppcemb/qemu-system-x86_64)通过kvm_fd->ioctl() 请求 KVM_CREATE_VM 服务,创建一个 VM
3. qemu 通过 kvm-vm_fd->ioctl() 请求 KVM_SET_USER_MEMORY_REGION
4. qemu 通过 kvm-vm_fd->ioctl() 请求 KVM_IRQFD
5. qemu 通过 kvm-vm_fd->ioctl() 请求 KVM_CREATE_VCPU
6. 尔后 qemu 可通过 kvm-vcpu_fd->ioctl() 执行如下命令:
KVM_RUN
KVM_GET_REGS
KVM_SET_REGS
KVM_GET_SREGS
KVM_SET_SREGS
KVM_GET_MP_STATE
KVM_SET_MP_STATE
……
以上操作皆实现于 kvm_vcpu_ioctl() 中
kvm-vm_fd->ioctl() 操作实现于 kvm_vm_ioctl() 中
kvm_fd->ioctl() 操作实现于 kvm_dev_ioctl() 中
路过,学习下 打破老婆终身制,实行小姨股份制。引入小姐竞争制,推广情人合同制。 听君一席话,省我十本书! 我的id是假冒的,大家不要相信我是骗子。 人生不能像做菜、把所有的料都准备好才下锅! 吃饭与ml是第一生产力。
页:
[1]