Recent posts

基于VFIO的物理设备直通实现

less than 1 minute read

最近工作中经常遇到设备直通方面的问题,各云厂商为了在虚拟机内部达到接近裸机的I/O性能,通常将物理设备比如网卡、NVMe等直通到虚拟机内。本文基于Linux Kernel 6.6及QEMU 8.2分析基于VFIO的设备直通实现。

Linux的virtio设备前端驱动实现

1 minute read

众所周知,virtio协议是虚拟化场景下诞生的一种前后端设备通信协议,极大提升了虚拟化场景下的I/O性能。该协议需要前后端共同配合实现,Guest OS内部需要安装virtio设备的前端驱动,后端VMM则负责模拟对应的virtio设备后端,两者基于virtio规范进行通信。 本文主要基于Linux Kernel ...

KVM在ARM架构上的初始化

less than 1 minute read

KVM是Linux内核里集成的一种type 2虚拟化方案,它作为内核的一个模块负责虚拟化环境初始化,虚拟机和虚拟CPU模拟,以及I/O捕获与转发等功能。

Sleepable RCU

1 minute read

经典RCU在临界区内不能睡眠或阻塞,因此SRCU(Sleepable RCU)被提出允许在读者的临界区内睡眠。为了尽量避免在临界区内睡眠导致的RCU callbacks积压,SRCU采用了域隔离,即使出现RCU callbacks积压,也只影响当前域的SRCU。

从源码全面了解crun

5 minute read

crun是Redhat的工程师Giuseppe开发的一款低层级的OCI runtime,与runc一样都全面兼容OCI标准规范,负责执行容器生命周期等各种管理功能。但与runc使用go语言不同,crun使用C语言开发,使其具有优异的性能与较小的内存开销,同时其程序的二进制文件更小,而且支持更多OCI不支持的新特性...