На днях был представлен новый релиз QEMU, QEMU 8.1. Он дает возможность запускать софт, написанный, например, под ARM, на ПК с x86. При этом производительность эмулятора почти такая же, как при запуске такого ПО на «родной» архитектуре. Этого удается добиться за счет выполнения прямого инструкций на CPU и использования возможностей гипервизора Xen или модуля KVM. Что разработчики изменили в новой версии?
Одно из ключевых нововведениий — новые возможности в модулях virtio. Добавлена, например, поддержка асимметричного шифрования. А еще — эмуляция зонированных устройств. В virtio‑mem добавлена поддержка горячего отключения устройств и миграции в режиме «x‑ignore‑shared». Добавлено новое устройство vhost‑user для VIRTIO SCMI.
В эмуляторах архитектур ARM, PowerPC и RISC‑V реализовано использование инструкций для ускорения шифрования AES, предоставляемых процессором хост‑системы.
Появился мультитач, речь идет, конечно, о графическом интерфейсе.
В эмуляторе x86 появилась поддержка процессоров Intel Xeon на базе микроархитектуры Granite Rapids. По умолчанию задействованы структуры в формате SMBIOS 3.0.
Для архитектуры ARM добавлена поддержка относительно новой платы Banana Pi BPI‑M2 Ultra (bpim2u) и CPU Cortex Neoverse‑V1 (neoverse‑v1). Добавлена поддержка процессорных расширений FEAT_PAN3 (SCTLR_ELx.EPAN), FEAT_LSE2 (Large System Extensions v2) и FEAT_RME (Realm Management Extensions).
Для эмуляторов архитектур ARM, PowerPC и RISC‑V реализовано использование инструкций для ускорения шифрования AES, предоставляемых процессором хост‑системы.
В эмуляторе архитектуры RISC‑V добавлена поддержка CPU Veyron V1, а также наборов процессорных инструкций (ISA) BF16 (Zfbfmin/Zvfbfmin/Zvfbfwma) и Zfa. Реализована возможность дизассемблирования инструкций Zcm*, Z*inx,XVentanaCondOps и Xthead. Улучшена поддержка гипервизора KVM.
В эмуляторе архитектуры MIPS реализована поддержка процессоров Ingenic XBurstR1 и XBurstR2, а также процессорных инструкций MXU.
В классическом генераторе кода TCG для архитектуры PowerPC добавлена поддержка SMT (Simultaneous multithreading), позволяющая на системах pseries и powernv выполнять до 8 потоков на каждом процессорном ядре.
В эмуляторе архитектуры PowerPC добавлена поддержка эмуляции модели CPU Power9 DD2.2, а также реализована возможность профилирования CPU POWER.
Для эмулятора процессоров Qualcomm Hexagon добавлена поддержка инструкций v68/v73 scalar и v68/v69 HVX. Для HVX реализована поддержка gdbstub для удалённой отладки в GDB.
Еще одно нововведение касается архитектуры s390. Здесь решены проблемы при эмуляции инструкций LDER, LCBB, LOCFHR, MXDB, MXDBR, EPSW, MDEB, MDEBR, MVCRL, LRA, CKSM, CLM, ICM, MC, STIDP, EXECUTE и CLGEBR(A).
Что касается эмулятора Tricore, то здесь добавлена поддержка процессоров TC37x, использующих версию 1.6.2 набора процессорных инструкций. Добавлена поддержка эмуляции инструкций POPCNT.W, LHA, CRC32L.W, CRC32.B, SHUFFLE, SYSCALL и DISABLE.
Наконец, для шины PCIe предложены новые команды QMP (QEMU Machine Protocol) для подстановки событий, связанных с CXL (Compute Express Link), DRAM и модулями памяти.