Linux DMA 与缓存一致性
Linux DMA 与缓存一致性
难度:深度。本文为中文技术整理,保留来源中的技术边界;示例只用于阅读,未在本服务器执行。
DMA 涉及设备地址、CPU cache、IOMMU 和 ownership 转移。streaming 与 coherent DMA 语义不同,普通虚拟地址不能直接当设备地址。
示例
dma_addr_t dma = dma_map_single(dev, buf, size, DMA_TO_DEVICE);
if (dma_mapping_error(dev, dma)) return -EIO;
来源
- https://docs.kernel.org/core-api/dma-api-howto.html
Linux DMA 与缓存一致性
https://blog.529808.xyz//archives/tech-c91888e8be44