LINUX.ORG.RU

QEMU 2.11.0

 ,


1

3

Релиз эмулятора QEMU 2.11.0.

В качестве эмулятора QEMU предоставляет возможность запуска программы, собранной для одной аппаратной платформы, на системе с совершенно иной архитектурой.

В режиме виртуализации QEMU производительность исполнения кода в контейнере близка к хост-системе за счёт прямого выполнения инструкций CPU и активации гипервизора Xen или KVM.

Список изменений:

  • Улучшена поддержка работы VNC через Websockets для графического интерфейса.
  • В virtio-input включена поддержка REL_WHEEL.
  • Стала доступной возможность горячего подключения watchdog-устройств.
  • В pcie-pci-bridge — проброс PCIe через PCI — добавлено горячее подключение устройств, SHPC и способное выступать в качестве замены i82801b11 DMI для PCI-мостов.
  • Включен модуль TPM (Trusted Platform Module).
  • В VFIO-устройствах — проброс доступа к GPU NVIDIA (p2p DMA) — добавлена экспериментальная поддержка технологии NVIDIA GPUDirect Cliques.
  • Улучшена работа гостевых систем на базе Hyper-V на гипервизоре KVM.
  • Доступно более 64 виртуальных CPU для гостевых систем на Hyper-V.
  • Увеличена производительность при использовании формата шифрованных разделов LUKS на блочных устройствах.
  • Добавлено руководство системы qemu-block-drivers.
  • Прекращена поддержка платформы AIX и архитектуры ia64 (Itanium) на стороне хост-системы.
  • В эмулятор архитектуры ARM добавлена поддержка эмуляции плат Smartfusion2, улучшена производительность проброса PCI с использованием INTx, расширена поддержка Xen для гостевых систем на базе архитектуры AArch64.
  • В эмулятор архитектуры OpenRISC добавлена экспериментальная поддержка многопроцессорных систем (SMP).
  • В эмуляторе архитектуры PowerPC налажена работа различных типов Mac-систем и добавлена поддержка виртуальных режимов SMT.
  • В эмуляторе архитектуры s390 появилась поддержка устройств virtio-input-ccw и virtio-gpu-ccw, горячего подключения CPU через новый интерфейс device_add и экспериментальная поддержка полной эмуляции нескольких потоков vcpu.
  • В эмулятор архитектуры SPARC добавлена эмуляция адаптера sunhme (Happy Meal Ethernet) и обеспечено использование мостов Simba PCI для более качественного соответствия топологии Ultra 5 PCI.

>>> ChangeLog

SDL2 пофиксили ещё:

2017-11-16 Jindrich Makovicka sdl2: Fix broken display updating after the window... 2017-11-16 Jindrich Makovicka sdl2: Do not leave grab when fullscreen 2017-11-16 Jindrich Makovicka sdl2: Fix dead keyboard after fullsceen 2017-11-16 Jindrich Makovicka sdl2: Use the same pointer show/hide 2017-11-16 Jindrich Makovicka sdl2: Do not quit the emulator when an auxilliary windo...

Т.е. теперь при закрытии вспомогательных окон с монитором к примеру не закрывается само главное окно эмуля. Плюс при уходе на другой рабочий стол машинка в эмуляторе продолжает тикать. Это было сломано в какой-то момент.

Но я словил неприятный asssert: qemu-system-x86_64 -M q35 -enable-kvm -cdrom /dev/shm/slax_16_12_2017_test.iso -m 512 -display sdl,gl=on -soundhw es1370 -cpu host qemu-system-x86_64: /dev/shm/qemu/exec.c:1212: cpu_physical_memory_snapshot_get_dirty: Assertion `start + length <= snap->end' failed. Аварийный останов

Как я понимаю он же описан тут: https://lists.gnu.org/archive/html/qemu-devel/2017-04/msg05461.html

Повторить пока не удалось.

Плюс ещё с TCG (медленно) словил ещё один аварийный останов при просто dmesg в госте!

qemu-system-x86_64 -M q35 -cdrom /dev/shm/slax_16_12_2017_test.iso -m 128 -display sdl,gl=on -soundhw es1370 -cpu pentium2 Bad ram offset aabe780 Аварийный останов

Andrew-R ()
Ответ на: комментарий от Andrew-R

Плюс в свежеоткрытой ветке для 2.12 добавили скорости в рекомпилятор для ppc.

https://www.emaculation.com/forum/viewtopic.php?f=34&t=7047&sid=6646e...

MacBench 3.0 results in Mac OS 9.2:

From 2.11 (yesterday) to 2.12 pre (15-12-2017)
Processor: 173 > 211
Floating point: 49 > 58
Disk mix: 106 > 156
Graphics mix: 153 > 171

https://lists.gnu.org/archive/html/qemu-devel/2017-12/msg03236.html

Плюс говорят, что стал грузиться леопард (Mac OS X 10.5) для PPC.

В эмуляции Sparc тоже обещано ускорение дисковых операций процентов на 20%: https://virtuallyfun.com/2017/12/06/revisiting-a-solaris-on-qemu-install/#com...

.....

Also I’ve rewritten the sun4m IOMMU/DMA code for the upcoming 2.11 release to use the proper QEMU APIs (instead of the legacy “manual” implementations) and I’ve had reports that this improves disk performance by ~20%.

И там же подсказка, как можно попробовать поставить NeXT Step для sparc:

FWIW you can boot/install NeXTSTEP on Linux if you run QEMU like: taskset –cpu-list=1 qemu-system-sparc …. which restricts QEMU only to use a single CPU

Andrew-R ()

Не троллинга ради, кто-нить его юзал под Мак осью? Всё хочу попробовать. Или лучше на вин? На десктопе у меня нет линукса уже много лет как.

menangen ★★★★★ ()
Ответ на: комментарий от menangen

https://stackoverflow.com/questions/47363953/how-to-run-haxm-on-mac-osx-hight...

https://github.com/intel/haxm/commits/master

https://lists.nongnu.org/archive/html/qemu-devel/2017-11/msg02504.html

As some of you may have noticed, since QEMU 2.9.0, an accelerator known as “hax” has been available for Windows and macOS builds of QEMU, thanks to the hard work of Vincent Palatin and help from this community (Paolo Bonzini, Stefan Weil, et al.).

Где-то на форумах было что мол даже работает ...частично.. под мак ос.

Andrew-R ()
Ответ на: комментарий от Andrew-R

https://www.emaculation.com/forum/viewtopic.php?p=58275#p58275

As for HAXM, it appears that qemu with HAXM cannot boot from cdrom. I tried HD images and managed to boot ChromiumOS, Kali Linux (Debian-based), ReactOS and Haiku OS. Also Remix OS boots to logo. Windows, OS/2, Mac OS X, BeOS 5, Solaris 10 and 11 crash. That is, qemu with HAXM can do something already on MacOS host.

Andrew-R ()

Привет всем.

Я тут недавно посмотрел доклад одного товарища, который на железной машине включил HugePages по 2M для запуска большого количества виртуалок. С точки зрения хоста - все понятно, на нем работают Qemu по количеству виртуалок и когда qemu работает с mmap по большим страницам. А как это выглядит для софта внутри виртуалки, я не понимаю. Ведь в конце концов программы внутри виртуалки работают на железном хосте без всякой виртуализации, и для софтины внутри виртуалки использовать большие страницы может быть далеко не оптимально.

Кто-нибудь может объяснить, что будет, если какой-то софт внутри виртуалки сделает mmap на 4K страницу, а qemu при этом использует большие страницы? А потом еще mmap на 4K, а затем поменяет права для первой страницы с ro на rw или rwx? Как это все будет работать?

anonymous ()
Ответ на: комментарий от anonymous

Насколько я понимаю, за это отвечает код `transparent_hugepage_adjust`, который освобождает hugepage и выделяет обычную. Но происходит это только в случае page fault, так что пока нет записи например в rw всё нормально — будет жить hugepage.

davinchi ()

Есть ли смысл на пользовательской машине переходить с virtualbox на qemu. Будет ли какой-то прирост в производительности?

anonymous ()
Ответ на: комментарий от menangen

В MacOS есть hyperkit.framework (местный аналог KVM), в Google Summer of Code 2017 была попытка добавить его поддержку в QEMU, причем было это сделано в итоге забавно - сначала попытка написать с нуля, потом в форке QEMU от Google, который используется в эмуляторе Android, обнаружилось, что это уже написали, и студент, выполняющий работу портировал эти патчи в текущую ветку.

Судя по списку рассылки патчи не приняли - https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg05613.html , а также в связи с несоответствием кода оформлению, принятому в QEMU, патчи вернули на доработку, но тут Summer прошел и студент на работу забил.

Я ради интереса наложил эти патчи на текущую версию, попробовал работать и действительно, скорость виртуалки в разы увеличилась, но... падает в неожиданных моментах - при компиляции, при работе с сетью, просто так. К сожалению, времени посидеть с отладчиком не было.

Как обычно в OpenSource - пока нет заинтересованных, это будет «неуловимым Джо»

widgetii ()

В VFIO-устройствах — проброс доступа к GPU NVIDIA (p2p DMA) — добавлена экспериментальная поддержка технологии NVIDIA GPUDirect Cliques.

Может кто-нибудь перевести с формального на полезный?

t184256 ★★★★★ ()
Ответ на: комментарий от Pinkbyte

на венде/макоси он будет ощутимо тормозить

Спасибо.

Меня, собсна, не эмуляция интересует, а разработка и запуск нативых приложений под PPC. Точнее - когда-то интересовала, сегодня особого смысла в этом как бы и нет.

rht ★★★★★ ()
Последнее исправление: rht (всего исправлений: 1)
Ответ на: комментарий от widgetii

Да, я тоже слышал про hyperkit.framework и, вроде, про то, что Docker использует его для запуска виртуалки через hyve (или как-то так называется, аналог гипервизора из BSD), короче, только Docker использует «нативную» виртуализацию в OSX, а остальные наработки очень сырые.

menangen ★★★★★ ()
Ответ на: комментарий от rht

Я пробовал, finnix-ppc запускал, в последних версиях даже загрузчик видно, ну и внутри можно (было, пробовал до того как из дебиана поддержку ppc32 выкинули/перенесли) сделать apt что-то там.

finnix-ppc-110.iso

https://www.finnix.org/

qemu-system-ppc -M mac99 -cpu G4 -m 1024 -soundhw es1370 -display sdl,gl=on -cdrom ~/finnix-ppc-110.iso -boot d

что-то типа такой строчки работает. Но я бы взял с git там скорости прибавили именно для ppc (ещё не проверял лично).

Andrew-R ()

А кто-нибудь знает, где взять образ MacOsX, чтобы запустить под qemu? И с какими параметрами запускать. Есть желание свой софт под Mac портировать, а покупать для этого MacMini совсем не вариант. От мака нужна только консоль.

anonymous ()
Ответ на: комментарий от anonymous

Попросить знакомого маковода сделать по инструкции:

https://github.com/kholia/OSX-KVM

https://www.contrib.andrew.cmu.edu/~somlo/OSXKVM/

2. Creating an OS X boot DVD iso image SnowLeopard (10.6) was the last OS X version released in DVD format. Starting with Lion (10.7), an install DVD (.iso) image may be generated on an OS X machine by following the steps below (Thanks Dick Marinus for pointing out the Yosemite-specific updates!):

[....]

(это если x86-64 macos)

Andrew-R ()
Ответ на: комментарий от Andrew-R

Насколько я понял, там написано, что для того, чтобы сделать qemu образ Mac'а, нужна машина с MacOs, на которой создается установочный iso с которого затем и ставится MacOs в qemu. Если бы у меня был мак, я на нем и тестировал бы свой софт без всякого qemu. Впрочем, если кто-то сделает установочный iso с MacOs и выложит куда-то, то я не против.

P.S. Изначальная задача - портировать существующий софт на Mac, не имея машины с Mac.

anonymous ()

Кстати, как правильно запускать теперь? А то

qemu-system-x86_64: -usbdevice tablet: '-usbdevice' is deprecated, please use '-device usb-...' instead
qemu-system-x86_64: -net nic,vlan=0: 'vlan' is deprecated. Please use 'netdev' instead.
ehci warning: guest updated active QH
Запускаю так:
-net nic,vlan=0 -net user,vlan=0 -usbdevice tablet

fehhner ★★ ()