1、Landing IOMMUFD to Anolis刘肄(Intel)薛帅(Alibaba)VFIO RecapIOMMUFDAnolis IOMMUFDstatusChallenge inPracticeVFIO RecapWhy would we need iommufdVFIO RecapVFIO A way to gain BareMetal I/O performance in virtualization A multi-layer userspace driver in Linuxvfio-pci Handle the device access like PCI configur
2、ation space r/w,BAR mmap,interrupts,etc.;Siblings:vfio-mdev,vfio-platform,etc;vfio_iommu_type1 driver Map/unmap the userspace memory in iommu I/O page table;Siblings:vfio_iommu_spapr_tce;UserspaceKernelHWvfio-pcivfio_iommu_type1VFIOVM/AppDeviceIOMMUVFIO RecapvDPA support vDPA has iommu map/unmap sup
3、port as well Not scale to support new IOMMU features(PASID,Nested translation etc)in two separate modules A central part is neededvfio user interface constraint for new features vfio provides group level isolation to user-not scale to extend to support PASID.vfio iommu interface is per vfio containe
4、r-not scale to support IOMMU features like Nested translationIOMMUFD IntroductionIOMMUFDiommufd is a new user interface for managing I/O page tables for devices managed by userspacedriversConsolidates all userspace iommu operations and interactions between userspace driver and kernel MAP/UNMAP,dirty
5、 tracking,PRI,PASID and nested translation etc.The single portal of supporting new IOMMU advancements for all userspace driver frameworksSimplified maintenance modelIOMMUFD SkeletonIOMMU FD Created per/dev/iommu opening Hold multiple I/O address spaces for the current process Support the iommu opera
6、tions(e.g.,DMA map/unmap)from userspaceIOAS An iommufd-local software handle representing an I/O address space Allocated via iommufd ioctlHWPT An iommufd-local software handle representing an I/O page table Allocated via iommufd ioctl or in attaching IOASkAPI interacting with VFIO Bind/unbind device