一、KVM工具栈 提示:上图主要描述了kvm的主要工具栈,从大的类别可以分为libvirt和qemu这两大类,其中libvirt中分virtual machine manager和virsh,virtual machine manager中的virt-manager是基于图形界面的管理,其他都是可以在命令行直接使用命令来管理虚拟机;virsh是基于终端命令行管理;两者都是通过libvirt连接至libvirtd...
普通vcpu的操作: 如果运行的是其它vcpu,那么只需要将该vcpu的pvti的物理地址值赋值给该vcpu的arch.time,并发出KVM_REQ_GLOBAL_CLOCK_UPDATE请求(也就是说,vcpu0有可能连续发出两个REQUEST).之后根据kvm_gfn_to_hva_cache_init的结果将pv_time_enabled置为true或false.看一下kvm_gfn_to_hva_cache_init函数....
当vcpu所在进程被调度运行或被调度不运行时,会触发下面回调。 kvm_preempt_ops.sched_in= kvm_sched_in; kvm_preempt_ops.sched_out= kvm_sched_out; static struct miscdevice kvm_dev = { KVM_MINOR, "kvm", &kvm_chardev_ops, }; static struct file_operations kvm_chardev_ops = { .unlocked_ioctl...
OPTIONS [--domain] <string> domain name, id or uuid --inactive 显示不活跃定义的 XML --security-info 包括 XML 转储中与安全性相关的信息 --update-cpu 根据主机 CPU 更新虚拟机 CPU --migratable 为迁移提供 XML 可用性 [root@node1 ~]# virsh dumpxml c1 <domain type=\'kvm\'> <name>c1</n...
AArch64的Host和Guest使用的使用了相同的内核镜像,使用arm64的默认配置编译,如果要支持ramdisk文件系统的话,还需要调整一下配置。 编译Qemu 编译运行在x86上的qemu的命令如下: #!/bin/bash../configure --prefix=`pwd` \--target-list=arm-softmmu,aarch64-softmmu,i386-softmmu,x86_64-softmmu,riscv32-softmmu...
(只提供8个hypercall调用): 编号 Hypercall 0x0001 KVM_HC_VAPIC_POLL_IRQ() 0x0002 KVM_HC_MMU_OP() 0x0003 KVM_HC_FEATURES() 0x0004 KVM_HC_PPC_MAP_MAGIC_PAGE() 0x0005 KVM_HC_KICK_CPU() 0x0006 KVM_HC_CLOCK_PAIRING() 0x0007 KVM_HC_SEND_IPI() 0x0008 KVM_HC_SCHED_YIELD() (具体...
conn = libvirt.openReadOnly('remote1') 4) /etc/libvirt/qemu目录 在qemu目录下,存放的是虚拟机域的配置文件。查看qemu目录如下: 其中kvm0.xml就是我们之前创建的kvm0虚拟机,用命令virt-install或者virt-manager创建的都会默认在这个目录下生成配置XML文件,其中networks目录保存了创建域时...
KVM_GET_CLOCK was called. If clear, the returned value is simply CLOCK_MONOTONIC plus a constant offset; the offset can be modified with KVM_SET_CLOCK. KVM will try to make all VCPUs follow this clock, but the exact value read by each VCPU could differ, because the host TSC is not ...
KVM halt poll 是 vCPU 退出到 host,即将被调度器sched_out前,KVM 先轮询一段时间,如果这期间有对 vCPU 的唤醒要求,则让 vCPU 继续执行。这种策略可以在一些场合,避免在host中 vCPU 线程 idle 和 running 状态的切换。 此过程的源码实现如下。 2.1 HLT caused VM-exit ...