KVM结构体在KVM的系统架构中代表一个具体的虚拟机。当通过VM_CREATE_KVM指令字创建一个新的KVM虚拟机之后,就会创建一个新的KVM结构体对象。广州网站建设
KVM结构体对象中包含了vCPU、内存、APIC、IRQ、MMU、Event事件管理等信息。该结构体中的信息主要在KVM虚拟机内部使用,用于跟踪虚拟机的状态。
在定义KVM结构体的结构成员的过程中,集成了很多编译开关,这些开关对应了KVM体系中的不同功能点。在KVM中,连接了如下几个重要的结构体成员,它们对虚拟机的运行有重要的作用。
struct kvm_memslots *memslots;
KVM虚拟机所分配到的内存slot,以数组形式存储这些slot的地址信息。
struct kvm_vcpu *vcpus[KVM_MAX_VCPUS];
KVM虚拟机中包含的vCPU结构体,一个虚拟CPU对应一个vCPU结构体。
struct kvm_io_bus *buses[KVM_NR_BUSES];
KVM虚拟机中的I/O总线,一条总线对应一个kvm_io_bus结构体,如ISA总线、PCI总线。
struct kvm_vm_stat stat;
KVM虚拟机中的页表、MMU等运行时状态信息。
struct kvm_arch arch;
KVM的软件arch方面所需要的一些参数,将在后文讨论KVM的实现机理时详细叙述。



