Поддержка акселератора VMM для QEMU
Ссылки:
Ссылка на проект URL: https://wiki.freebsd.org/SummerOfCode2025Projects/VMMAcceleratorSupportForQEMU
Код (форк FreeBSD) URL: https://github.com/dumrich/freebsd-src
Код (форк QEMU) URL: https://github.com/dumrich/qemu.git
Контакт: Abhinav Chavali <abhinavchavali12@gmail.com>
Описание
Этот проект направлен на реализацию бэкенда-акселератора vmm(4) для QEMU. Путем организации взаимодействия QEMU с нативной инфраструктурой гипервизора FreeBSD пользователи смогут запускать виртуальные машины с производительностью, близкой к нативной, используя аппаратные расширения виртуализации (VMX/SVM), аналогично тому, как KVM функционирует на Linux. Это сочетает обширную экосистему эмуляции устройств QEMU с производительностью гипервизора ядра FreeBSD.
Статус
Бэкенд теперь достаточно функционален для загрузки гостевой системы FreeBSD с использованием одного виртуального CPU (vCPU).
Базовая инфраструктура для взаимодействия QEMU с libvmmapi создана.
Критически важно, что контроллеры прерываний (8259 PIC, IOAPIC, LAPIC) теперь успешно используют реализации из vmm ядра, а не эмуляцию в пользовательском пространстве.
Открытые вопросы и призыв о помощи
Хотя основная работа завершена, есть ключевые области, где вклад сообщества был бы очень ценен для того, чтобы объединить эту работу с вышестоящим проектом (upstream):
-
Поддержка гостевых SMP: В настоящее время гостевая система ограничена 1 vCPU. Мы ищем помощь в отладке существующей обработки циклов/потоков в бэкенде для включения поддержки многопроцессорности.
-
Вынос устройств (Device Offloading): Таймеры RTC и HPET в настоящее время всё ещё эмулируются в пользовательском пространстве QEMU. Их необходимо переработать для использования внутриядерных версий из
vmmдля лучшей производительности и корректности. -
Общая стабильность: Как и для любого бэкенда гипервизора, нам нужна помощь в тестировании граничных случаев и стресс-тестировании с различными типами гостевых ОС.
Я хотел бы поблагодарить Google за спонсорство и проект FreeBSD за наставничество и возможность внести свой вклад в систему.
Спонсор: Google Summer of Code 2025
Последнее изменение: 24 февраля 2026 г. от Vladlen Popolitov