特殊场景2-不支持SVA,所有注册到UACCE框架的设备都不支持IOMMU的场景
为了解决要传递加速器硬件可见的地址给硬件的问题,WD基础层接口又新增了wd_blk_iova_map和wd_blk_iova_unmap接口,把用户态地址转成硬件可见的地址,及把硬件可见地址转成用户态地址。具体API细节请参考BLK内存管理接口。但是请注意支持这些场景的接口都不是主流,而且由于不支持IOMMU的方案存在安全问题,后续这些接口可能会移除。
在这种场景下,使用WD基础层接口时,和特殊场景1-不支持SVA但是使能IOMMU,所有注册到UACCE框架的设备都是支持PASID和支持IOMMU的场景一致。只是硬件加速器用户态驱动层接口要做调整,这些调整由开发用户态驱动的开发人员开发驱动时实现,WD基础层接口用户不用作任何动作。wd_send过程中需要对于通过wd_alloc_blk分配的内存要通过wd_blk_iova_map转成硬件可见的地址,wd_recv过程中对于通过wd_alloc_blk分配的内存需要通过wd_blk_iova_unmap把硬件可见地址转成用户态可见地址。
父主题: WD基础层接口