本文分析和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版本。
qemu PCIe设备增加pasid capability
本文介绍给一个qemu pcie设备增加pasid capability要注意的问题。
qemu里增加trace的方法
在调试qemu代码的时候可以在qemu的启动命令中增加--trace "xxx", 这样qemu代码 运行到这个地方就会把相关的内容打印出来,这个文档介绍怎么新加一个这样的trace点。
uthash和glib hash
本文是一个uthash和glib hash的学习笔记。
mtrace使用笔记
mtrace是一个GNU C库中的内存检测工具,用以检测用户态程序内存泄露 (malloc, realloc, free)。检测的原理为在程序开始时通过mtrace()为malloc等函数安装 handlers[1], malloc等函数执行时就会把相应的信息写到指定文件中(由环境变量指定)[2], 最后由一个perl脚本(/usr/bin/mtrace)解析信息。
strace使用笔记
stracestrace a.out 可以输出a.out中依次调用的系统调用,和gdb一样strace使 用系统调用pstrace实现其功能。