0%

最近Linux社区在上传SVA特性(share virtual memory), 简单讲这个特性可以达到 这样的功能,就是可以是设备直接使用进程里的虚拟地址。如果把设备操作映射到用户态, 就可以在用户态叫设备直接使用进程虚拟地址。设备可以使用进程虚拟地址做DMA,如果 设备功能强大,比如可以执行一段指令,设备甚至可以直接执行相应进程虚拟地址上的 指令。目前SVA特性正处于上传阶段,这个特性的补丁涉及到IOMMU, PCI, 内存管理(MM), SMMU, VFIO, 虚拟化,DT, ACPI等方面的修改,所以补丁比较分散,不过好在这个特性的 上传者把相关补丁收集在了一个分支上,即https://jpbrucker.net/sva/ 的sva/current 分支上。想要了解SVA的整体,可以直接查看这个分支上的各个提交。需要说明是,这个 分支的base是5.2-rc7, 在5.3中这个分支上的少量补丁已经合入Linux主线,如果想用最 新内核测试SVA需要做一定的适配工作。本文的分析以base是5.2-rc7的sva/current分支 上的补丁为基础。

阅读全文 »

本文分析现在Linux内核中对打开文件引用计数的处理逻辑,目的是解答一个问题,即对设备文件的操作会不会引用到已经释放的文件上。

阅读全文 »

有些时候在调试内核代码时,我们想跟踪下内核代码的执行流程,以及函数执行时间。 这个时候我们可以用Linux内核自带的ftrace来跟踪。本文简介具体的跟踪方法

阅读全文 »

本文分析Intel QAT技术对应软件栈的支持,主要的关注点在压缩解压缩的软件栈,本文只是寻找资料时候的一个笔记,还很粗糙。

阅读全文 »

调试的时候需要dump PCIe设备BAR里各个寄存器的内容,一般我们可以读 /sys/devices//resource[n]这个文件得到。 Martoni写了一个小软件可以方便resource里内容的读取。这个软件在: https://github.com/Martoni/pcie_debug。 本文介绍这个工具的使用。

阅读全文 »

本文简单分析zswap的软件构架,为在zswap框架中添加crypto acomp的支持做准备。 关于zswap的基本介绍和使用可以参考: https://wangzhou.github.io/使用linux-zswap/。本文的分析基于Linux主线5.5-rc1。

阅读全文 »