EuroBSDCon 2026

Hotplugging adventures in the bhyve hypervisor
2026-09-13 , D.0.02

The bhyve hypervisor recently gained the ability to add or remove emulated PCI devices to a running virtual machine [1].
This talk will showcase the key design and implementation details that went into adding support for ACPI-based hotplugging to the bhyve(8) hypervisor.

We'll start with a deep dive into bhyve(8)'s device emulation model and the related parts of the virtual machine initialization process. Using this overview, we will analyze the limitations of bhyve's current device emulation model and explore the key architectural changes that were required to enable runtime PCI device hotplugging.
We will then explore the newly implemented PCI hotplugging mechanism, starting with a bird's-eye view of the interactions between the hypervisor and the guest and continuing with each component of the mechanism, diving into key implementation details along the way.
The talk will also include a demo of bhyve(8)'s new PCI hotplugging capabilities and the overall workflow for adding or removing PCI devices from a virtual machine. We will end with an overview of upcoming work for CPU and memory hotplugging.

[1] https://lists.freebsd.org/archives/freebsd-virtualization/2026-January/003412.html

Bojan Novković is a FreeBSD src committer from Zagreb, Croatia, whose main interest is kernel hacking (especially on virtual memory and the bhyve hypervisor). He is currently working as a FreeBSD developer for Klara systems.