本文具体分析ATS相关的一些消息格式, 以及一些相关的设计逻辑。这些消息格式 除了capability,其他的都是软件不感知的,但是通过分析他们,我们对系统的 行为可以有更深一点的了解。当前的版本中,我们先分析目前比较关心的域段,随后 看需要补充其他的域段。
如何在qemu里增加一个虚拟设备
本文介绍在qemu里增加一个虚拟设备的步骤。本文会以一个PCIe DMA engine设备为 例来介绍,我们定义这个设备的软硬件接口,并且按照这样的定义在qemu里实现这个 设备,最后我们实现这个设备的Linux内核驱动。使用qemu可以方便的调试Linux内核, 有了自定义的qemu设备,使用qemu调试与设备有关的问题也会变得比较方便。
两层qemu环境配置
本文介绍qemu启动的系统里再起一个qemu的环境配置。这样可以搭建一个完全虚拟的 虚拟化环境,方便调试虚拟化相关的东西。本文说明整个搭建的逻辑,并搭建一个arm64 的qemu in qemu的环境。
Makefile再学习
本文是《跟我一起学Makefile》的一个学习笔记,N年前看过这个材料,现在再回头 看下,温故而知新。然后在拿pciutils里手写的Makefile逐行对照着看下。本文也用于 后面持续收集make相关的用法。
一个优先级队列的实现
本文介绍优先级队列的基本概念,并用c语言实现一个简单的优先级队列。
PCIe PRI分析
本文分析和PCIe PRI特性相关的软硬件接口逻辑,以及相关的软件实现。
qemu iommu模拟思路分析
本文介绍qemu对iommu模拟的思路,我们以qemu里smmuv3设备驱动为例。
Linux内核DMA子系统分析
本文分析Linux内核DMA子系统的构架,需要写DMA engine驱动的同学可以作为参考。
glib option简易使用
Linux下命令行运行一个app时,可以通过中划线开头的参数给app传参数。app可以 使用getopt或者是getopt_long的方式解析输入参数,glib库同样提供一组参数配置、 解析的函数。使用glib库提供的解析方式写起代码来更简单一点,本文介绍一个基本 的使用方式。
qemu qom分析
qemu里使用面向对象的模型来模拟相关的元素,可以想象这样的模拟是很合理的,比如, 用device描述一个设备的基类,pci_device可以继承device,然后vfio的pci设备又可以 继承pci_device,同时一个用纯用软件模拟的pci网络设备也可以继承pci_device。 本文描述这个基于面向对象的思路构建起来的qemux模型。分析基于qemu 5.2.92版本。