Virtualization, including safe pass-through guest access to devices, is a well-known and mature technology on servers. With the increasing complexity and abilities of SoCs, virtualization is gaining importance on embedded systems, too. In this presentation, Geert will explore virtualization and device pass-through (VFIO) using QEMU and KVM on a Device Tree-based embedded ARM system, pursuing the holy grail of embedded developers: the ability to blink a connected LED. While seemingly too trivial and inapplicable, Geert will show how relevant such a contrived example is to more complex real-world uses of device pass-through. He will talk about the obstacles he encountered, and how they were overcome, enabling the use of device pass-through for real on-SoC devices using DMA. Finally, Geert will discuss when to use device pass-through, and when other virtualization techniques offer a better solution.
In this presentation, embedded developers will get a grasp of virtualization, and can expect a hands-on report of getting device pass-through working on DT-based systems, enabling them to accelerate implementing virtualization in their own projects and products. Understanding the differences between traditional PCI-based servers, and relatively new embedded systems with DT, will help software developers improve support for device pass-through, in both Linux and virtualization environments like QEMU/KVM. Hardware (SoC and board) designers will learn about the impact of their design decisions on virtualization, and what to take into account to allow efficient virtualization of hardware devices.
Speakers: Geert Uytterhoeven