diff --git a/website/content/en/status/report-2025-10-2025-12/qemu-vmm-accelerator.adoc b/website/content/en/status/report-2025-10-2025-12/qemu-vmm-accelerator.adoc new file mode 100644 index 0000000000..bc4e6c7f43 --- /dev/null +++ b/website/content/en/status/report-2025-10-2025-12/qemu-vmm-accelerator.adoc @@ -0,0 +1,34 @@ +=== QEMU vmm Accelerator Support + +Links: + +link:https://wiki.freebsd.org/SummerOfCode2025Projects/VMMAcceleratorSupportForQEMU[Project Link] URL: https://wiki.freebsd.org/SummerOfCode2025Projects/VMMAcceleratorSupportForQEMU[] + +link:https://github.com/dumrich/freebsd-src[Code (FreeBSD fork)] URL: link:https://github.com/dumrich/freebsd-src[] + +link:https://github.com/dumrich/qemu.git[Code (QEMU fork)] URL: https://github.com/dumrich/qemu.git[] + +Contact: Abhinav Chavali + +==== Description + +This project aims to implement a man: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 `vmm` in-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