LA-vIOMMU: An Efficient Hardware-Software Co-design of IOMMU Virtualization
Chen Lv, Fuxin Zhang, Xiang Yang Gao, Chen Zhu · 2022
I/O Memory Management Unit (IOMMU) is im-portant hardware support for I/O virtualization, and it is widely used in device passthrough. However, IOMMU sacrifices memory utilization due to the static mapping requirement. Moreover, it lacks DMA security guarantees inside the guest. IOMMU virtual-ization is a decent solution among existing studies to address these problems. Nevertheless, pure software IOMMU virtualization suffers from high overhead, while hardware-assisted IOMMU virtualization needs complex hardware redesign. Therefore, en-abling efficient design with low hardware overhead remains chal-lenging. In this paper, we propose an efficient hardware-software co-design of IOMMU virtualization, named LA-vIOMMU, to achieve high I/O performance with low hardware overhead. LA-vIOMMU is designed based on the existing vIOMMU mode and can be adapted to other platforms. We describe the design and implementation of LA-vIOMMU. The LA-vIOMMU combines hardware expansion and software optimization to minimize the performance cost. Furthermore, we evaluate the effectiveness and security of LA-vIOMMU and analyze the advantages compared with the existing design in x86. The experiment results show that LA-vIOMMU can get superior throughput than existing software approaches and achieve throughput pretty close to hardware-assisted virtualization with fewer hardware design changes and less verification overhead.