Поддержка акселератора VMM для QEMU

Контакт: 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