Оновлення QEMU 11.1: покращення підтримки RISC-V та нові функції

Випуск QEMU 11.1: поліпшення підтримки RISC-V та нові функції

QEMU 11.1 став першим оновленням для серії 11.x цього відкритого емулятора машин і віртуалізатора. Головною зміною стало додавання підтримки цільової архітектури RISC-V великого порядку. Це оновлення розширює підтримку ISA архітектури, включаючи підтримку чернетки розширення Zbr, Zvfbfa, KVM для підтримки розширень Zicbop і BFloat16, а також обробку дробових значень LMUL для векторних інструкцій SHA.

Покращення підтримки RISC-V у QEMU 11.1

Підтримка машин RISC-V суттєво зросла, оскільки QEMU 11.1 додав підтримку плати K230, оновив OpenSBI до версії 1.8.1, впровадив підтримку ідентифікатора Tenstorrent mvendorid і включив велику кількість виправлень у IOMMU, обробку переривань, обходження таблиць сторінок та інші нижчі рівні.

Покращення на платформі Arm

З боку Arm користувачі Apple HVF можуть тепер використовувати вкладену віртуалізацію на віртуальній платі. Крім того, qemu-system-aarch64 тепер може запускати 32-розрядного гостьового операційну систему на 64-розрядному TCG процесорі, використовуючи властивість процесора aarch64=off.

Емуляція GICv5 та нові можливості на QEMU 11.1

QEMU 11.1 також впроваджує експериментальну емуляцію контролера переривань GICv5 та додає можливість завантаження UEFI shim через стандартний аргумент -shim. Для систем NVIDIA Tegra241 підтримка віртуалізації командних черг може забезпечити окремим віртуальним машинам виділені черги команд SMMUv3.

Розширення підтримки PowerPC у QEMU 11.1

Користувачі PowerPC також отримують значні зміни. Power11 тепер є процесором за замовчуванням для машин pseries, а PowerNV11 стає процесором за замовчуванням для PowerNV. Оновлення також додає підтримку MPIPL для PowerNV, включає вкладену модель MMU, оновлює прошивку SLOF і видаляє застарілі процесори Power8E та Power8NVL.

Поліпшення емуляції USB та функцій міграції

Емуляція USB отримала кілька виправлень, що стосуються безпеки. Це включає можливі проблеми з використанням після звільнення пам’яті та нескінченні цикли або аварії в usb-redir. Також виправлено доступ до області пам’яті у пристрої sysbus XHCI. Функція живої міграції отримала нові покращення, включаючи параметр x-rdma-chunk-size для контролю розмірів міграційних частин.

Крім того, усунено кілька помилок міграції, включаючи аварію при одночасному включенні multifd і zerocopy, можливе зависання у стані POSTCOPY_DEVICE, аварію під час другої міграції, якщо перша була скасована, і рідкісні аварії міграції VFIO.

Оновлення інтерфейсу в QEMU 11.1

На стороні дисплея випуск включає новий окремий сервер qemu-vnc. Він здатний експортувати -display dbus. Тепер віртуальні консольні пристрої отримали опцію кодування для CP437 або UTF-8. Емулятор VT100 тепер підтримує ввод UTF-8 з рендерингом CP437. Також покращено обробку гарячого підключення консольного GTK.

У підсумку, велика колекція архітектурно специфічних виправлень завершує цю роботу. Виправлення стосуються обробки сигналів, мережевих функцій, coredumps, стану з плаваючою крапкою, перевірки ioctl, допоміжних векторів та сумісності між платформами, включаючи RISC-V, PowerPC, SPARC, MIPS, SH4, Xtensa, s390x, Alpha та LoongArch.

Для отримання додаткових подробиць, перегляньте змінений журнал. Код QEMU 11.1 доступний для завантаження на сторінці проекту GitHub.