鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

特殊场景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将硬件可见地址转成用户态可见地址。