QEMU 7.1 реализует улучшения с передачей памяти в Linux
Была анонсирована версия QEMU 7.1, включающая ряд улучшений для различных эмуляторов , в первую очередь изменения для ARM и RISC-V, а также улучшение передачи данных через память для Linux. В рамках подготовки к версии 7.1 238 разработчиков внесли более 2800 изменений.
Для тех, кто плохо знаком с QEMU, следует знать, что он позволяет запускать программу, созданную для одной аппаратной платформы, в системе с совершенно другой архитектурой, например, запускать ARM-приложение на x86-совместимом ПК.
В режиме виртуализации в QEMU производительность выполнения кода в изолированной среде аналогична производительности аппаратной системы за счет прямого выполнения инструкций на ЦП и использования гипервизора Xen или модуля KVM.
Основные нововведения QEMU 7.1
В этой новой версии, представленной для Linux, реализована опция zero-copy-send , которая позволяет организовывать передачу страниц памяти во время миграции в реальном времени без промежуточной буферизации.
Кроме того, протокол QMP (QEMU Machine Protocol) добавляет возможность использования команды `block-export-add` для экспорта образов NBD с данными страниц в "измененном" состоянии. Также добавлены новые команды `query-stats` и `query-stats-schema` для запроса статистики из различных подсистем QEMU.
Еще одно заметное изменение в этой новой версии QEMU заключается в улучшенной совместимости гостевого агента с платформой Solaris и добавлении новых команд 'guest-get-diskstats' и 'guest-get-cpustats' для отображения состояния дисков и процессоров. В команду 'guest-get-disks' добавлена информация NVMe SMART, а в команду 'guest-get-fsinfo' — информация о типе шины NVMe.
Кроме того, добавлен новый эмулятор LoongArch для поддержки 64-битной версии архитектуры набора инструкций LoongArch (LA64). Эмулятор поддерживает процессоры Loongson 3 5000 и северные мосты Loongson 7A1000.
Кроме того, подчеркивается, что эмулятор ARM реализовал новые типы эмулируемых машин: SoC Aspeed AST1030, Qualcomm и AST2600/AST1030 (fby35), а также добавил поддержку эмуляции процессоров Cortex-A76 и Neoverse-N1, а также расширения SME (Scalable Matrix Extensions), RAS (Reliability, Availability, Serviceability) и команды для блокировки утечек внутреннего кэша во время выполнения спекулятивных инструкций в ЦП.
В эмуляторе архитектуры RISC-V добавлена поддержка новых расширений набора инструкций (ISA), определенных в спецификации 1.12.0, а также дополнительная поддержка расширения Sdtrig и улучшена поддержка векторных инструкций.
Среди других существенных изменений в новой версии можно отметить следующие:
- Улучшенные параметры отладки.
- Добавлена поддержка Trusted Platform Module (TPM) для эмулируемой машины virt и добавлена поддержка Ibex SPI для машины OpenTitan.
- В эмулятор x86 для KVM добавлена поддержка виртуализации механизма трассировки LBR (Last Branch Record).
- Реализована эмуляция обработчика прерываний GICv4 для виртуальных машин.
- Эмулятор архитектуры HPPA предлагает новую прошивку на основе SeaBIOS v6, которая поддерживает использование клавиатуры PS/2 в меню загрузки.
- Улучшена эмуляция последовательного порта.
- Добавлены дополнительные консольные шрифты STI.
- Эмулятор архитектуры MIPS для плат Nios2 (-machine 10m50-ghrd) реализует эмуляцию векторного контроллера прерываний и набор теневых регистров.
- Улучшена обработка исключений.
- Добавлена возможность использовать до 4 устройств 16550A UART в эмуляторе архитектуры OpenRISC для машины or1k-sim.
- Эмулятор архитектуры 390x обеспечивает поддержку расширений Vector-Enhancements Facility 2 (VEF 2). В BIOS s390-ccw есть возможность загрузки с дисков с размером сектора, отличным от 512 байт.
- В эмулятор архитектуры Xtensa добавлена поддержка ядер lx106 и объектных кодов тестирования кеша.
Наконец, если вас интересует более подробная информация об изменениях и новых функциях в новой версии QEMU 7.1, вы можете найти подробности по следующей ссылке.