资源分配:kmem_cache_create_usercopy与kvm_async_pf_init都是创建slab缓存,用于内核对象的分配; kvm_vfio_ops_init:VFIO是一个可以安全将设备I/O、中断、DMA导出到用户空间的框架,后续在将IO虚拟化时再深入分析; 图片中红色的两个函数,是本文分析的内容,其中kvm_arch_init与前文ARMv8硬件虚拟化支持紧密相关,而...
kvm:代表kvm内核模块,可以通过kvm_dev_ioctl来管理kvm版本信息,以及vm的创建等; vm:虚拟机实例,可以通过kvm_vm_ioctl函数来创建vcpu,设置内存区间,分配中断等; vcpu:代表虚拟的CPU,可以通过kvm_vcpu_ioctl来启动或暂停CPU的运行,设置vcpu的寄存器等; 以的使用为例: 打开/dev/kvm设备文件; ioctl(xx, KVM_CREATE...
字符设备的注册分为三级,分别代表kvm, vm, vcpu,上层最终使用底层的服务都是通过ioctl函数来操作; kvm:代表kvm内核模块,可以通过kvm_dev_ioctl来管理kvm版本信息,以及vm的创建等; vm:虚拟机实例,可以通过kvm_vm_ioctl函数来创建vcpu,设置内存区间,分配中断等; vcpu:代表虚拟的CPU,可以通过kvm_vcpu_ioctl来启动或...
进入Linux内核编译的文件夹,然后执行这个脚本。 发现偶尔会出现timer not found的错误导致Kernel Panic而无法开机:在 $accel参数中加上accel+=" -machine accel=kvm:tcg,kernel_irqchip=on",以及在$cmdline里加入cmdline+=" noapic" 因为需要在Linux环境中trigger swap,因此还需要制作一个disk image允许swap out。具...
QEMU/KVM结合起来分析的几篇文章,代码跟最新的版本有些差异,但大体逻辑一样,写得通俗易懂。我把链接放这里主要是为自己需要查看时调转过去方便,感谢作者的付出! QEMU Source Code Study - 1 QEMU Source Code Study (2) - KVM_init QEMU Source Code Study (3) - KVM_CREATE_VCPU ...
【原创】Linux虚拟化KVM-Qemu分析(一) 背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: KVM版本:5.9.1 QEMU版本:5.0.0 工具:Source Insight 3.5, Visio 1. 概述 从这篇文章开始,将开始虚拟化的系列研究了,大概会涉及到ARM64虚拟化支持、KVM、...
工具:Source Insight 3.5, Visio 文章同步在博客园:https://www.cnblogs.com/LoyenWang/ 1. 概述 本文围绕ARMv8 CPU的虚拟化展开; 本文会结合Qemu + KVM的代码分析,捋清楚上层到底层的脉络; 本文会提供一个Sample Code,用于类比Qemu和KVM的关系,总而言之,大同小异,大题小做,大道至简,大功告成,大恩不言谢...
Read the fucking source code!--By 鲁迅 A picture is worth a thousand words.--By 高尔基 说明: KVM版本:5.9.1 QEMU版本:5.0.0 工具:Source Insight 3.5, Visio 1. 概述 KVM虚拟化离不开底层硬件的支持,本文将介绍ARMv8架构处理器对虚拟化的支持,包括内存虚拟化、中断虚拟化、I/O虚拟化等内容; ...
Read the fucking source code!--By 鲁迅 A picture is worth a thousand words.--By 高尔基 说明: KVM版本:5.9.1 QEMU版本:5.0.0 工具:Source Insight 3.5, Visio 文章同步在博客园:https://www.cnblogs.com/LoyenWang/ 1. 概述 先从操作系统的角度来看一下timer的作用吧: ...
Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: KVM版本:5.9.1 QEMU版本:5.0.0 工具:Source Insight 3.5, Visio 文章同步在博客园:https://www.cnblogs.com/LoyenWang/ 1. 概述 让我们先来看看问题的引入,在之前的virtio系列文章中,网络虚拟化的框架如...