一、VFIO 热迁移之状态机
(刷新一次就可以看到图) 前言 VFIO 的热迁移技术是一个相对来说比较新的特性,它相较于 vdpa 是可以直通到虚拟机内部,这样会有着更好的性能,但也存在一个问题就是通用性差一点,如不是标准的 virtio 设备,那么就需要在虚拟机里面安装专属的设备驱动,这在云厂商来说是一个极大的挑战,但是对于一些非网络设备如 GPU、RDMA 等设备追求性能优…
IOMMU 几个关键问题
IOMMU 的核心功能是什么?它解决了哪些关键问题? IOMMU (Input/Output Memory Management Unit) 的核心功能包括 DMA 地址重映射 (DMA Remapping) 和 中断重映射 (Interrupt Remapping)。它的主要作用是作为设备(如 PCIe 设备、USB 控制器等)与系统主内存之间的…
图解 notify 工作原理
刷新一次就可以看到图了 几张图了解 KVM 和 QEMU 图一 图二 1、QEMU 和 KVM 是如何实现的 (通用交互流程,基于第一张图的解释) sequenceDiagram participant GuestApp as Guest Application/OS participant GuestCPU as Guest vCPU parti…
vdpa 特性协商机制
首先每一个 vdpa 设备都有自己的基础特性,举例如下两个设备,其中是基本的环境信息 版本 virsh 8.0.0 qemu qemu-kvm-6.2.0-53.module+el8.10.0+1882+0c885e98.2 guest os 4.18.0-348.el8.x86_64 那我们看一下 feature 的几个来源以及其中的作用 设备的…
kernel 内存模型
我们来详细了解一下内核的内存模型,为了达成了解的目的,我们从内核的两个宏函数入手 page_to_pfn、pfn_to_page 内核提供了两个宏来完成 PFN 与物理页结构体 struct page 之间的相互转换。它们分别是 page_to_pfn 与 pfn_to_page,先看一下内核的这两个宏函数 #define page_to_pfn …
linux pci passthrough
ubuntu 虚拟机 jeff@ubuntu:~/workstaging/qemu-gdb/start_qemu$ cat start_qemu.sh qemu-system-x86_64 -s \ -kernel /home/jeff/workstation/kernel_src/linux-hwe-5.11-5.11.0/arch/x86_64…
交叉编译ARM内核
环境准备 安装编译器 http://xxxxx/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz sudo dpkg -i gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz 设置环境变量 export PATH=$PA…
x86平台起ARM虚拟机
安装AARCH的qemu工具和efi固件 apt-get install qemu-system-arm apt-get install qemu-efi-aarch64 apt-get install qemu-utils 创建flash image dd if=/dev/zero of=flash1.img bs=1M count=64 dd …
记一次客户环境死机分析
客户环境发生无故重启的现象,查看ipmi也是正常的 环境crash时的调用栈 crash> bt PID: 24715 TASK: ffff883f3bedef20 CPU: 17 COMMAND: "CPU 3/KVM" #0 [ffff883e962d38a0] machine_kexec at ffffffff810…
ovs报Too many open files
现象 现象是ovs占用cpu比较高,查看ovs的stack发现一直陷入内核代码,但是一直被schedule出去; 查看进程file descriptor限制 [root@node-1 zjp]# ulimit -u 102400 查看ovs-vswitchd进程打开的文件数 [root@node-1 zjp]# lsof -p $(pidof ov…