QEMU vmm Accelerator Support
Links:
Project Link URL: https://wiki.freebsd.org/SummerOfCode2025Projects/VMMAcceleratorSupportForQEMU
Code (FreeBSD fork) URL: https://github.com/dumrich/freebsd-src
Code (QEMU fork) URL: https://github.com/dumrich/qemu.git
Contact: Abhinav Chavali <abhinavchavali12@gmail.com>
Description
This project aims to implement a vmm(4) accelerator backend for QEMU. By interfacing QEMU with FreeBSD’s native hypervisor infrastructure, users can run virtual machines with near-native performance using hardware virtualization extensions (VMX/SVM), similar to how KVM functions on Linux. This combines the extensive device emulation ecosystem of QEMU with the performance of the FreeBSD kernel hypervisor.
Status
The backend is now functional enough to boot a FreeBSD guest using a single vCPU.
The core infrastructure for interfacing QEMU with libvmmapi is in place.
Crucially, interrupt controllers (8259 PIC, IOAPIC, LAPIC) are now successfully utilizing the kernel’s vmm implementations rather than userspace emulation.
Open Items & Call for Help
While the heavy lifting is complete, there are key areas where community contributions would be highly valued to get this merged upstream:
-
Guest SMP Support: Currently, the guest is limited to 1 vCPU. We are looking for assistance in debugging the existing loop/thread handling in the backend to enable multi-CPU support.
-
Device Offloading: The RTC and HPET timers are currently still emulated in userspace by QEMU. These need to be reworked to use the
vmmin-kernel versions for better performance and correctness. -
General Stability: As with any hypervisor backend, we need help with edge-case testing and stress testing across different guest OS types.
I would like to thank Google for the sponsorship, and the FreeBSD Project for the mentorship and opportunity to contribute to the system.
Sponsor: Google Summer of Code 2025
Last modified on: January 9, 2026 by Abhinav Chavali