Title
Platform Device Assignment to KVM-on-ARM Virtual Machines via VFIO
Abstract
VFIO (Virtual Function I/O) is a Linux kernel infrastructure that allows to leverage the capabilities of modern IOMMUs to drive a device directly from user space without any additional specialized kernel driver being involved. When used by QEMU/KVM, a device can be assigned to a guest VM, allowing to transparently handle all aspects of communication with the device, including DMA mapping, MMIO range mapping, and interrupts. To support a given hardware architecture and device, VFIO will need to be able to support the type of IOMMU that is in front of the device, and the discovery and configuration mechanisms of the bus that the device is connected to. However, often no auto configuration interface is exposed on ARM, as opposed to devices on a PCI bus, commonly used on x86. In order to support VFIO on ARM, in this work platform devices support is being implemented as a VFIO_PLATFORM driver. Additionally, VFIO is being extended to support common IOMMUs found on ARM systems, such as the ARM SMMU. In this paper, we highlight the challenges met while implementing the required components, and extensions to VFIO and KVM in order to fully support device assignment to Virtual Machines on modern ARM systems.
Year
DOI
Venue
2014
10.1109/EUC.2014.32
Embedded and Ubiquitous Computing
Keywords
DocType
Citations 
Linux,field buses,microcontrollers,virtual machines,ARM systems,DMA mapping,IOMMU,Linux kernel infrastructure,MMIO range mapping,PCI bus,VFIO_PLATFORM driver,device assignment,hardware architecture,hardware device,interrupts,modern IOMMU,virtual function I/O,virtual machines,arm,device assignment,device passthrough,iommu,kvm,qemu,vfio,virtualization
Conference
0
PageRank 
References 
Authors
0.34
3
3
Name
Order
Citations
PageRank
Antonios Motakis100.34
Alvise Rigo211.03
Daniel Raho374.05