问题一如何在内核驱动程序里 (调用什么接口) 配置一段内存为共享内存,使得主机或者PCIe设备DMA可访问
回答: 如果您调用DMA API,返回的地址已经是解密的。Linux系统在启动时,已经配置DMA bounce buffer解密,供设备使用。
如果您自己在操作系统中分配一块内存,以OpenEuler 6.6 为例,可以调用set_memory_decrypted完成共享内存配置,其他系统类似。
问题二:虚拟机的加密内存在默认情况下,PCIe设备DMA是否可以访问?
回答:如问题一中的解释,PCIe DMA访问的内存为解密内存。用户使用DMA 接口时,该接口会自动将加密内存中复制到解密内存,与设备交互。简单的说,设备无法直接访问加密内存,需要解密后访问。

暂无数据