[qemu-s390 package document]
The QEMU based packages included with SLES 15 SP4 provide a large variety of features, from the very latest customer requests to features of questionable quality or value. The linux kernel includes components which contribute KVM virtualization features as well. This document was created to assist the user in deciding which features can be relied upon to build enterprise class virtualization solutions. KVM based virtualization for x86 (Intel 64/AMD64), for IBM System z (s390x), and for the ARM64 architecture (AArch64) are offered at the L3 (full support) level. The bulk of this document deals with L3 supported features and is primarily s390x centric. This document should be considered a companion to the standard virtualization documentation delivered with the product.
KVM is implemented in linux kernel modules which enable the linux kernel to function as an integral part of the KVM hypervisor. The hypervisor-guest interaction is managed by QEMU through the /dev/kvm ioctl interface. The linux host assists in the virtualization of storage, networking and display resources as well as allowing direct hardware passthrough of PCI devices. Linux memory and cpu management features are used by QEMU/KVM to enable guests to share those host resources as efficiently as possible.
QEMU is a primary component of KVM based virtualization. The legacy qemu-kvm program is available for continuity with pre SLES 12 usage, including in libvirt domain xml references. The QEMU emulator binary qemu-system-s390x is now the primary program to use to access KVM virtualization. When using this program, the -machine option accel=kvm (or its alias -enable-kvm) or --accel kvm option must be specified for KVM acceleration to be used by the guest.
Libvirt is the preferred means of accessing QEMU/KVM functionality and is documented elsewhere. This document focuses on the features and direct usage of QEMU/KVM as provided by the QEMU based packages.
The QEMU program command-line syntax is as follows: qemu-system-s390x [options]
Where 'options' are taken from the options listed below. The images used with -drive or -cdrom, may be in the raw (no format) or qcow2 storage formats, and may be located in files within the host filesystem, logical volumes, host physical disks, or network based storage. Read only media may also be accessed via URL style protocol specifiers.
Note that as a general rule, as new command line options are added which serve to replace an older option or interface, you are strongly encouraged to adapt your usage to the new option. The new option is being introduced to provide better functionality and usability going forward. In some cases existing problems or even bugs in older interfaces cannot be fixed due to functional expectations, but are resolved in the newer interface or option. This advice includes moving to the most recent machine type (eg s390-ccw-virtio-6.1 instead of s390-ccw-virtio-6.0) if possible.
The following command line options are supported: -accel ... -action ... -add-fd ... -alt-grab -append ... -audio-help -audiodev -bios ... -blockdev ... -boot ... -cdrom ... -chardev ... -compat ... -cpu host -ctrl-grab -d ... -daemonize -debugcon ... -device
[virtio-net-pci|virtio-blk-pci|virtio-balloon-pci|virtserialport| virtconsole|virtio-serial-pci|virtio-scsi-pci|scsi-cd|scsi-hd| scsi-generic|scsi-block|virtio-rng-pci|pci-bridge|megasas-gen2|e1000e| e1000|zpci|virtio-gpu-ccw|virtio-keyboard-ccw|vhost-user-blk-pci| vhost-user-scsi|vhost-user-scsi-pci|vhost-vsock-ccw| virtio-balloon-ccw|virtio-blk-ccw|vhost-scsi-ccw|vhost-user-blk| virtio-crypto-ccw|virtio-net-ccw|virtio-rng-ccw|virtio-scsi-ccw| virtio-serial-ccw|virtio-mouse-ccw|virtio-tablet-ccw|vfio-pci| virtio-vga|vhost-scsi-pci-non-transitional| vhost-scsi-pci-transitional|vhost-user-blk-pci-non-transitional| vhost-user-blk-pci-transitional|vhost-user-scsi-pci-non-transitional| vhost-user-scsi-pci-transitional|vhost-vsock-pci-non-transitional| virtio-9p-ccw|virtio-9p-pci-non-transitional| virtio-9p-pci-transitional|virtio-balloon-pci-non-transitional| virtio-balloon-pci-transitional|virtio-blk-pci-non-transitional| virtio-blk-pci-transitional|virtio-input-host-pci-non-transitional| virtio-input-host-pci-transitional|virtio-net-pci-non-transitional| virtio-net-pci-transitional|virtio-rng-pci-non-transitional| virtio-rng-pci-transitional|virtio-scsi-pci-non-transitional| virtio-scsi-pci-transitional|virtio-serial-pci-non-transitional| virtio-serial-pci-transitional|vhost-user-fs-pci|vhost-user-gpu| vhost-user-pci-pci|vhost-user-input|vhost-user-input-pci| vhost-user-vga] (the following are aliases of these supported devices: virtio-blk| virtio-input-host|virtio-keyboard|virtio-mouse|virtio-tablet| virtio-gpu|virtio-9p|virtio-net|virtio-serial|virtio-balloon| virtio-scsi|virtio-rng)
-dfilter range, ... -display ... -drive
- ... (if specified if=[virtio] and format=[qcow2|raw] and
snapshot=off only)
-echr ... -enable-fips -enable-kvm -fsdev ... -full-screen -fw_cfg ... -gdb ... -global ... -h -help -incoming ... -initrd ... -iscsi ... -k ... -kernel ... -loadvm ... -m ... -M
[help|?|none|s390-ccw-virtio-2.6|s390-ccw-virtio-2.9|s390-ccw-virtio-2.11| s390-ccw-virtio-3.1|s390-ccw-virtio-4.2|s390-ccw-virtio-5.2]
-machine | [help|?|none|s390-ccw-virtio-2.6|s390-ccw-virtio-2.9| s390-ccw-virtio-2.11|s390-ccw-virtio-3.1|s390-ccw-virtio-4.2| s390-ccw-virtio-5.2] |
-mem-path ... -mem-prealloc -mon ... -monitor ... -msg ... -name ... -net
- [bridge|l2tpv3|nic|none|tap|user] ... (for model= only e1000, rtl8139,
and virtio are supported)
-netdev [bridge|tap|user] ... -nic ... -nodefaults -nographic -no-quit -no-reboot -no-shutdown -no-user-config -object ... -only-migratable -parallel ... -pidfile ... -plugin ... -qmp ... -qmp-pretty ... -readconfig ... -rtc ... -runas ... -s -S -sandbox ... -seed ... -serial ... -smp ... -trace ... -uuid ... -version -vga [none|qxl|std] -virtfs ... -vnc ... -watchdog ... -watchdog-action ... -writeconfig ...
The following monitor commands are supported: ? announce_self ... balloon ... block_resize ... boot_set ... c change ... chardev-add ... chardev-change ... chardev-remove ... chardev-send-break ... client_migrate_info ... closefd ... cont cpu ... delvm ... device_add ... device_del ... drive_add ... drive_backup ... drive_del ... dump_guest_memory ... eject ... gdbserver ... gpa2hpa ... gpa2hva ... gva2gpa ... help i ... info ... loadvm ... logfile ... logitem ... mce ... memsave ... migrate ... migrate_cancel migrate_continue ... migrate_incoming migrate_pause migrate_recover ... migrate_set_capability ... migrate_set_parameter ... migrate_start_post_copy mouse_button ... mouse_move ... mouse_set ... nmi ... o ... object_add ... object_del ... p ... pmemsave ... print ... q qemu-io ... qom-list qom-set ringbuf_read ... ringbuf_write ... savevm ... screendump ... sendkey ... snapshot_blkdev_internal ... snapshot_delete_blkdev_internal ... stop sum ... system_powerdown system_reset system_wakeup trace-event ... watchdog_action ... x ... xp ...
The following QMP commands are supported: add_client add-fd announce-self balloon blockdev-add blockdev-backup blockdev-change-medium blockdev-close-tray blockdev-create blockdev-del blockdev-mirror blockdev-open-tray blockdev-snapshot blockdev-snapshot-delete-internal-sync blockdev-snapshot-internal-sync blockdev-snapshot-sync block-commit block-dirty-bitmap-add block-dirty-bitmap-clear block-dirty-bitmap-disable block-dirty-bitmap-enable block-dirty-bitmap-merge block-dirty-bitmap-remove block-export-add block-export-del block-latency-histogram-set block_resize block_set_io_throttle block-set-write-threshold block_stream calc-dirty-rate change-vnc-password chardev-add chardev-change chardev-remove chardev-send-break client_migrate_info closefd cont cpu device_add device_del device-list-properties display-reload dump-guest-memory eject expire_password getfd human-monitor-command inject-nmi input-send-event job-cancel job-complete job-dismiss job-finalize job-pause job-resume memsave migrate migrate_cancel migrate-continue migrate-incoming migrate-pause migrate-resume migrate-set-capabilities migrate-set-parameters migrate-start-postcopy object-add object-del pmemsave qmp_capabilities qom-get qom-list qom-list-types qom-set query-acpi-ospm-status query-balloon query-block query-block-exports query-block-jobs query-blockstats query-chardev query-chardev-backends query-command-line-options query-commands query-cpu-definitions query-cpu-model-baseline query-cpu-model-comparison query-cpu-model-expansion query-cpus-fast query-current-machine query-dirty-rate query-display-options query-dump query-dump-guest-memory-capability query-fdsets query-gic-capabilities query-hotpluggable-cpus query-iothreads query-jobs query-kvm query-machines query-memdev query-memory-devices query-memory-size-summary query-mice query-migrate query-migrate-capabilities query-migrate-parameters query-name query-named-block-nodes query-pci query-pr-managers query-qmp-schema query-rocker query-rocker-of-dpa-flows query-rocker-of-dpa-groups query-rocker-ports query-rx-filter query-spice query-status query-target query-uuid query-version query-vnc query-vnc-servers query-yank query-xen-replication-status quit remove-fd ringbuf-read ringbuf-write screendump send-key set-action set_link set_password snapshot-delete snapshot-load snapshot-save stop system_powerdown system_reset system_wakeup trace-event-get-state trace-event-set-state transaction watchdog-set-action yank
The following command line options are unsupported:
-acpitable ... -chroot ... -cpu ... (all except host) -curses -device
[AC97|adlib|am53c974|amd-iommu|AMDVI-PCI|ccid-card-emulated| ccid-card-passthrough|cirrus-vga|cs4231a|dc390|diag288|e1000-82544gc| e1000-82545em|edu|ES1370|floppy|generic-sdhci|gus|hda-duplex| hda-micro|hda-output|hyperv-testdev|*-i386-cpu|i8042|i82550|i82551| i82557a|i82557b|i82557c|i82558a|i82558b|i82559a|i82559b|i82559c| i82562|i82801|i82801b11-bridge|ib700|ich9-intel-hda|ich9-usb-ehci1| ich9-usb-ehci2|ich9-usb-uhci1|ich9-usb-uhci2|ich9-usb-uhci3| ich9-usb-uhci4|ich9-usb-uhci5|ich9-usb-uhci6|ide-cd|ide-drive|ide-hd| igd-passthrough-isa-bridge|intel-hda|intel_iommu|ioh3420| ipmi-bmc-extern|ipmi-bmc-sim|ipoctal232|isa-applesmc|isa-cirrus-vga| isa-debugcon|isa-debug-exit|isa-fdc|isa-ide|isa-ipmi-bt|isa-ipmi-kcs| isa-parallel|isa-serial|isa-vga|lsi53c810|lsi53c810a|max-s390x-cpu| megasas|mptsas1068|ne2k_isa|ne2k_pci|nec-usb-xhci|nvdimm|nvme|pc-dimm| pci-testdev|pcnet|pc-testdev|piix3-ide|piix3-ide|piix3-ide-xen| piix4-usb-uhci|pvscsi|pxb|pxb-host|pxb-pcie|qemu-s390-cpu|rocker| s390-flic|s390-flic-qemu|s390-ipl|s390-pcihost| s390-sclp-event-facility|s390-skeys-qemu|sb16|sclp|sclpconsole| sclp-cpu-hotplug|sclplmconsole|sclp-memory-hotplug-dev|sclpquiesce| sd-card|sdhci-pci|secondary-vga|sga|smbus-eeprom|tpci200|usb-audio| usb-bot|usb-ccid|usb-mtp|usb-uas|vfio-ap|vfio-pci-nohotplug| virtio-9p-device|virtual-css-bridge|vmcoreinfo|vmgenid|vmware-svga| vmxnet3|vt82c686b-usb-uhci|x3130-upstream|*-x86_64-cpu|xen-backend| xen-pci-passthrough|xen-platform|xen-pvdevice|xio3130-downstream| z10BC.2-base-s390x-cpu|z10BC.2-s390x-cpu|z10BC-base-s390x-cpu| z10BC-s390x-cpu|z10EC.2-base-s390x-cpu|z10EC.2-s390x-cpu| z10EC.3-base-s390x-cpu|z10EC.3-s390x-cpu|z10EC-base-s390x-cpu| z10EC-s390x-cpu|z114-base-s390x-cpu|z114-s390x-cpu| z13.2-base-s390x-cpu|z13.2-s390x-cpu|z13-base-s390x-cpu|z13-s390x-cpu| z13s-base-s390x-cpu|z13s-s390x-cpu|z196.2-base-s390x-cpu| z196.2-s390x-cpu|z196-base-s390x-cpu|z196-s390x-cpu| z800-base-s390x-cpu|z800-s390x-cpu|z890.2-base-s390x-cpu| z890.2-s390x-cpu|z890.3-base-s390x-cpu|z890.3-s390x-cpu| z890-base-s390x-cpu|z890-s390x-cpu|z900.2-base-s390x-cpu| z900.2-s390x-cpu|z900.3-base-s390x-cpu|z900.3-s390x-cpu| z900-base-s390x-cpu|z900-s390x-cpu|z990.2-base-s390x-cpu| z990.2-s390x-cpu|z990.3-base-s390x-cpu|z990.3-s390x-cpu| z990.4-base-s390x-cpu|z990.4-s390x-cpu|z990.5-base-s390x-cpu| z990.5-s390x-cpu|z990-base-s390x-cpu|z990-s390x-cpu| z9BC.2-base-s390x-cpu|z9BC.2-s390x-cpu|z9BC-base-s390x-cpu| z9BC-s390x-cpu|z9EC.2-base-s390x-cpu|z9EC.2-s390x-cpu| z9EC.3-base-s390x-cpu|z9EC.3-s390x-cpu|z9EC-base-s390x-cpu| z9EC-s390x-cpu|z14ZR1-base-s390x-cpu|z14ZR1-s390x-cpu| zBC12-base-s390x-cpu|zBC12-s390x-cpu|zEC12.2-base-s390x-cpu| zEC12.2-s390x-cpu|zEC12-base-s390x-cpu|zEC12-s390x-cpu|cpu-cluster| z14.2-base-s390x-cpu|z14.2-s390x-cpu|vhost-user-fs-device| virtio-iommu-device|virtio-iommu-pci| virtio-iommu-pci-non-transitional|vhost-user-vsock-device| vhost-user-vsock-pci|vhost-user-vsock-pci-non-transitional| vhost-user-fs-ccw|guest-loader] (the following are aliases of these unsupported devices: lsi| ahci|e1000-82540em|vfio-ccw) (note that some of these device names represent supported devices and are used internally, but are not specifyable via -device even though they appear in the list of devices)
-drive ,if=[scsi|mtd|pflash], snapshot=on, format=[anything besides qcow2 or raw] -dtb file -enable-sync-profile -fda/-fdb ... -g ... -hda/-hdb/-hdc/-hdd ... -icount ... -L ... -M
[s390-ccw-virtio|s390-ccw-virtio-2.4|s390-ccw-virtio-2.5| s390-ccw-virtio-2.7|s390-ccw-virtio-2.8|s390-ccw-virtio-2.10| s390-ccw-virtio-2.12|s390-ccw-virtio-3.0|s390-ccw-virtio-4.0| s390-ccw-virtio-4.1|s390-ccw-virtio-5.0|s390-ccw-virtio-5.1| s390-ccw-virtio-6.0|s390-ccw-virtio-6.1]
-machine [s390-ccw-virtio|s390-ccw-virtio-2.4|s390-ccw-virtio-2.5| s390-ccw-virtio-2.7|s390-ccw-virtio-2.8|s390-ccw-virtio-2.10| s390-ccw-virtio-2.12|s390-ccw-virtio-3.0|s390-ccw-virtio-4.0| s390-ccw-virtio-4.1|s390-ccw-virtio-5.0|s390-ccw-virtio-5.1| s390-ccw-virtio-6.0|s390-ccw-virtio-6.1] -mtdblock file -net [socket|vde] ... -netdev [hubport|l2tpv3|socket|vde] ... -no-acpi -no-fd-bootchk -no-hpet -no-kvm -no-kvm-irqchip -no-kvm-pit -no-kvm-pit-reinjection -numa cpu ... -numa dist ... -numa node ... -option-rom ... -overcommit ... -pflash file -portrait -preconfig -prom-env ... -qtest ... -qtest-log ... -rotate -sd file -sdl -set ... -singlestep -smbios ... -snapshot -soundhw ... -spice -tdf -tpmdev emulator ... -tpmdev passthrough ... -usb -usbdevice [braile|disk|host|mouse|net|serial|tablet] -vga [cg3|tcx|virtio|cirrus|xenfb|vmware] -win2k-hack -xen-attach ... -xen-domid ... -xen-domid-restrict ...