0%

本文分析Linux内核中IO DMA地址映射的流程,其中涉及到的具体iommu硬件以及驱动, 我们分析ARM SMMUv3的相关的实现。分析内容基于Linux主线5.13-rc4。

阅读全文 »

Linux中可以用信号来做通信,本文是对linux信号的一个使用总结。也会总结下APUE第10 章中关于信号的内容。

阅读全文 »

在Linux系统下编程的时候,当需要保护特性数据结构的时候会用到各种锁。本文记录作者在实际使用时候的一些心得。

阅读全文 »

最近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内核中对打开文件引用计数的处理逻辑,目的是解答一个问题,即对设备文件的操作会不会引用到已经释放的文件上。

阅读全文 »