目录
一、虚拟内存的核心隔离性:VA 是进程的“逻辑视图”
二、IOMMU 的地址转换需求:设备需要“虚拟地址”
三、DMA 传输的动态性:VA 是“当前有效地址”的载体
五、va_create_page_mapping 与 dma_map_sg 的协同作用
1. va_create_page_mapping:建立 VA 到 PA 的映射
2. sg_alloc_table_from_pages:将 VA 转换为散列表(SG Table)
3. dma_map_sg:通过 IOMMU 映射为设备可识别的地址
在 DMA 传输中,即使上层已知物理地址(PA),仍需通过 VA(虚拟地址)与 PA 的映射完成传输,而非直接传递 PA,这一设计的核心原因是 虚拟内存管理机制、IOMMU 的地址转换需求,以及 DMA 控制器的工作特性。以下从技术原理、系统设计和实际场景三个维度详细解释: