1、SMMU hypervisor客户端框架
虚拟机中的vdev-smmu虚拟设备,提供smmu-*.so库中的功能子集。
1.1
为了支持smmu进程运行,host必须包含vdev-smmu虚拟设备,此设备包含如下功能:
-
IOMMU/SMMU服务
vdev-smmu 虚拟设备为客户端提供IOMMU/SMMU的服务:接收客户端smmu服务传递的配置信息,拒绝DMA设备访问允许区域外的设备,并将消息返回给设备,记录这些尝试。
-
内存映射
提供一种机制,使得虚拟机直通给客户机的DMA设备能够和主机的smmu协同工作,报中对物理内存的访问符合安全要求。
vdev-io-smmu.so由host来加载也必须加载libfdt.so库,smmu_client.so由其他(例如fastrpc)客户端来加载。
如下图展示了hypervisor客户端如果传递DMA设备到指定的内存区域: