MUSER: Mediated Userspace Device
Meet muser, a framework for implementing PCI devices in userspace. It leverages VFIO and MDEV which are kernel subsystems typically used in virtualisation for device pass-through. It consists of a kernel module that acts as the mediated device and a userspace library where the core of the device is implemented. Applications using libmuser must only provide a device description and callbacks for read/write.
Muser abstracts the complexity yet allows tremendous flexibility. It manages interrupts, the PCI config space, memory translation, handles interaction with VFIO/MDEV and much more. While allowing customisation where needed (for advanced use cases), it can also offer bindings for various languages. To prove simplicity, we will write and test a device live during the talk!
This is very useful with QEMU, where devices presented via VFIO can be directly passed to VMs. It also enables a single userspace process to manage devices for multiple VMs, which has performance benefits.
The talk will cover the basics of PCI, VFIO and MDEV to explain how pass-through work with VMs in Qemu/KVM hypervisors. It will then dive into MUSER showing a sample use case.
Senior Staff Software Engineer
Felipe is a Senior Staff Software Engineer working for Nutanix since 2015, more specifically leading the engineering efforts of the Acropolis Hypervisor (AHV). He brings nearly 20 years of expertise in storage performance and virtualisation. This includes four years at Citrix working on the XenServer storage datapath, a PhD at Imperial College London on performance of virtualised storage and managing storage arrays for vendors such as NetApp and EMC. In his (increasingly small) spare time, he enjoys playing bass guitar, chess and doing magic.