File supported.ppc.txt of Package qemu.8413

[qemu-ppc package document]

SLES 15 QEMU/KVM RELATED SUPPORT STATEMENTS

Overview
--------

  The QEMU based packages included with SLES 15 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), for Power8 Systems (ppc64le) 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 Power8
  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 and USB
  devices. Linux memory and cpu management features are used by QEMU/KVM to
  enable guests to share those host resources as efficiently as possible.
  The kvm_hv kernel module is required. The kvm_pr kernel module is unsupported.

  QEMU is a primary component of KVM based virtualization. The QEMU emulator
  binary qemu-system-ppc64 is the program to use to access KVM virtualization.
  When using this program, the -machine option accel=kvm (or its alias
  -enable-kvm) 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.

Major QEMU/KVM Supported Features
---------------------------------

- KVM virtualization is accomplished by using the QEMU program in KVM
  acceleration mode. KVM acceleration requires that both guest and host have
  the same fundamental architecture.

- Guest images created under previous QEMU versions are supported by machine
  version compatibilities built into more recent QEMU versions.

- For ease of use, the QEMU program has defaults which represent traditional
  usage patterns.

- Guest virtual machine characteristics are specified by a combination of
  internal defaults, options provided on the QEMU program command-line, runtime
  configurations set via the monitor interfaces and optional config files. The
  runtime control of a VM is effected either through the Human Monitor
  "Protocol" (HMP), or the JSON based programmatical QEMU Monitor Protocol (QMP)
  interface. For QMP details, see qemu-qmp-ref man page.
  Since a KVM guest runs in the context of a normal linux process, some types
  of execution controls are managed with linux tools.

- QEMU uses SLOF (Slimline Open Firmware) for booting ppc guests, which allow
  boot options common to physical systems.Various VGABIOS ROMs, from the SEABIOS
  project, are also available.

- Some QEMU messages have been localized to various languages. This is provided
  by the optional qemu-lang package. Keyboard mappings for various nationalities
  is also provided.

- Virtual machine lifecycle controls include startup through firmware or kernel
  boot, firmware based shutdown, execution pausing, the saving and restoring of
  machine state or disk state, VM migration to another host, and miscellaneous
  controls available through the "monitors" mentioned above.

- Guest execution state may be "moved" in both time (save/restore) and space
  (static and live migration). These migrations or save/restore operations can
  take place either from certain prior SLES versioned hosts to a SLES 15 or
  between hosts of the same version. Certain other restrictions also apply.

- Security considerations include privileged helpers and a security model which
  allows running guests as a non-root user.

- QEMU provides best effort reuse of existing disk images, including those with
  systems installed, through geometry probing. Also disk images produced by
  other popular virtualization technologies may be imported into QEMU supported
  storage formats. These QEMU formats include features which exploit the
  benefits of virtualization.

- Memory, cpu and disk space overcommit are possible and can be beneficial when
  done responsibly. Additional management of these resources comes in the form
  of memory ballooning or hotplug, host KSM, vcpu hot-add, online disk resizing,
  trim, discard and hole punching.

- Guest performance is enhanced through the use of virtio devices, various disk
  caching modes, network acceleration via the vhost-net kernel module, multi-
  queue network transmit capabilities, host transparent huge pages (THP) and
  direct hugetlb usage. Physical PCI and USB devices may also be passed through
  to the guest, including SR-IOV VF's.

- The guest UI is accessable via GTK, VNC, and serial (including curses TUI)
  interfaces.

- Guest timekeeping is supported in a variety of ways, including a paravirtual
  clocksource, and options for the various guest clocks for how to handle the
  timeslicing of the guest's execution on the host.

- In addition to the para-virtualized devices already mentioned, other devices
  and infrastructure designed to avoid virtualization "problem areas" are
  available such as SPICE graphics, vmmouse emulation, tablet style pointer
  interfaces and virtio based UI interfaces.

- A built-in user-mode network (SLIRP) stack is available.

- Portions of the host file system may be shared with a guest by using virtFS.

- A guest "agent" is available for SLES 15 KVM guests via the qemu-guest-agent
  package. This allows some introspection and control of the guest OS
  environment from the host.

QEMU/KVM Technology Previews
----------------------------

- Specifying and placing PCI devices on a PCI bridge allows for a greater number
  of devices.

- All features indicated as not being supported in this document fall under the
  Technology Preview definition contained in the main product's release notes.

Noteworthy QEMU/KVM Unsupported Features
----------------------------------------

- Note that some features are unsupported simply due to lack of validation. If
  an existing feature is desired, but not marked supported, let SUSE know about
  your requirements.

- The TCG "acceleration" mode may be helpful for problem isolation, but
  otherwise presents insufficient benefit and stability.

- GlusterFS integration is not enabled.

Deprecated, Superseded, Modified and Dropped Features
-----------------------------------------------------

- http://wiki.qemu-project.org/Features/LegacyRemoval
  This website tracks feature deprecation and removal at the upstream
  development level. Our qemu package inherits this community direction, but be
  aware that we can and will deviate as needed. Those deviations and additional
  information can be found in this section.

- The use of "?" as a parameter to "-cpu", "-soundhw", "-device", "-M",
  "-machine", "-d", and "-clock" is now considered deprecated. Use "help"
  instead.

- The use of "if=scsi" as a parameter to "-drive" does not work anymore with PC
  machine types, as it created an obsolete SCSI controller model.

- Use of aio=native without direct cache mode also being specified (cache=none,
  cache=directsync, or cache.direct=on) is no longer allowed.

- The use of image encryption in qcow and qcow2 formats is now considered
  deprecated.
  Analysis has shown it to be weak encryption, in addition to suffering from
  poor design. Images can easily be converted to a non-encrypted format.

- Use of acpi, boot-opts, and smp-opts in a -readconfig config file are now
  considered deprecated. In the future those names will be standardized to
  acpitable, boot, and smp respectively.

- These previously supported command line options are now considered deprecated:
  -balloon (use -device virtio-balloon instead)
  -clock
  -device ivshmem (use ivshmem-doorbell or ivshmem-plain instead)
  -nodefconfig (use -no-user-config instead)
  -no-frame
  -virtioconsole (use -device virtconsole instead)

- These previously supported command line options are no longer supported:
  <previously mentioned items have been moved to another category>

- These previously supported command line options are no longer recognized:
  -device pc-sysfw (no longer needed)
  -device pci-assign, -device kvm-pci-assign (use -device vfio-pci instead)
  -display sdl
  -sdl

- Specifying a cpu feature with both "+feature/-feature" and "feature=on/off"
  will now cause a warning. The current behavior for this combination where
  "+feature/-feature" wins over "feature=on/off", will be changed going forward
  so that "+feature" and "-feature" will be synonyms for "feature=on" and
  "feature=off" respectively.

- The previously supported blkdev-add QMP command has been flagged as lacking
  and could possibly change syntax in the future.

- This previously supported QMP command is now deprecated:
  query-cpus

- These previously supported monitor commands are now deprecated:
  usb_add (use device_add instead)
  usb_del (use device_del instead)

- These previously supported monitor commands are no longer recognized:
  pci_add (use device_add instead)
  pci_del (use device_del instead)

- Due to upstream's decision to no longer fully support the qed storage format
  going forward (since it really provides no benefit over qcow2 and is now no
  longer actively maintained upstream), creating qed storage images is no longer
  supported and it is highly discouraged to continue using existing qed images.
  They should instead be converted to another supported format.

QEMU Command-Line and Monitor Syntax and Support
------------------------------------------------

- The QEMU program command-line syntax is as follows:
  qemu-system-ppc64 [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.

- The following command line options are supported:
  -accel ...
  -add-fd ...
  -alt-grab
  -append ...
  -audio-help
  -balloon ...
  -bios ...
  -blockdev ...
  -boot ...
  -cdrom ...
  -chardev ..
  -clock ...
  -cpu host
  -ctrl-grab
  -d ...
  -daemonize
  -debugcon ...
  -device [VGA|rtl8139|virtio-net-pci|virtio-blk-pci|virtio-balloon-pci|
          virtio-9p-pci|usb-hub|usb-ehci|usb-tablet|usb-storage|usb-mouse|
          usb-kbd|virtserialport|virtconsole|virtio-serial-pci|i82559er|
          virtio-scsi-pci|scsi-cd|scsi-hd|scsi-generic|scsi-disk|scsi-block|
          pci-serial|pci-serial-2x|pci-serial-4x|ich9-ahci|usb-host|usb-serial|
          usb-wacom-tablet|usb-braille|usb-net|pci-ohci|virtio-rng-pci|i6300esb|
          qxl|qxl-vga|pvpanic|vfio-pci|ivshmem|ivshmem-doorbell|ivshmem-plain|
          pci-bridge|megasas-gen2|e1000e|e1000]
          (the following are aliases of these supported devices: ahci|
          virtio-blk|virtio-net|virtio-serial|virtio-balloon| virtio-9p|
          virtio-scsi|virtio-rng|e1000-82540em)
  -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|pseries|pseries-2.11]
  -machine [help|?|none|pseries|pseries-2.11]
  -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] ...
  -nodefaults
  -nodefconfig
  -no-frame
  -nographic
  -no-quit
  -no-reboot
  -no-shutdown
  -no-user-config
  -object ...
  -only-migratable
  -parallel ...
  -pidfile ...
  -qmp ...
  -qmp-pretty ...
  -readconfig ...
  -realtime ...
  -rtc ...
  -runas ...
  -s
  -S
  -sandbox ...
  -serial ...
  -show-cursor
  -smbios ...
  -smp ...
  -tpmdev passthrough ...
  -trace ...
  -usb
  -usbdevice [braile|disk|host|mouse|net|serial|tablet]
  -uuid ..
  -version
  -vga [none|qxl|std|virtio]
  -virtfs ...
  -virtioconsole ...
  -vnc ...
  -watchdog ...
  -watchdog-action ...
  -writeconfig ...

- The following monitor commands are supported:
  ?
  balloon ...
  block_resize ...
  boot_set ...
  c
  change ...
  chardev-add ...
  chardev-remove ...
  client_migrate_info ...
  closefd ...
  cont
  cpu ...
  cpu-add ...
  delvm ...
  device_add ...
  device_del ...
  drive_add ...
  drive_backup ...
  drive_del ...
  dump_guest_memory ...
  eject ...
  gdbserver ...
  help
  i ...
  info ...
  loadvm ...
  logfile ...
  logitem ...
  mce ...
  memsave ...
  migrate ...
  migrate_cancel
  migrate_continue ...
  migrate_incoming
  migrate_set_cache_size ...
  migrate_set_capability ...
  migrate_set_downtime ...
  migrate_set_parameter ...
  migrate_set_speed ...
  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 ...
  usb_add ...
  usb_del ...
  watchdog_action ...
  x ...
  xp ...

- The following QMP commands are supported:
  add_client
  add-fd
  balloon
  blockdev-add
  blockdev-backup
  blockdev-change-medium
  blockdev-close-tray
  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-remove
  block_passwd
  block_resize
  block_set_io_throttle
  block-set-write-threshold
  block_stream
  change
  change-vnc-password
  chardev-add
  chardev-remove
  client_migrate_info
  closefd
  cont
  cpu
  cpu-add
  device_add
  device_del
  device-list-properties
  dump-guest-memory
  eject
  expire_password
  getfd
  human-monitor-command
  inject-nmi
  input-send-event
  memsave
  migrate
  migrate_cancel
  migrate-continue
  migrate-incoming
  migrate-set-cache-size
  migrate-set-capabilities
  migrate_set_downtime
  migrate_set_speed
  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-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
  query-dump
  query-dump-guest-memory-capability
  query-events
  query-fdsets
  query-gic-capabilities
  query-hotpluggable-cpus
  query-iothreads
  query-kvm
  query-machines
  query-memdev
  query-memory-devices
  query-memory-size-summary
  query-mice
  query-migrate
  query-migrate-cache-size
  query-migrate-capabilities
  query-migrate-parameters
  query-name
  query-named-block-nodes
  query-pci
  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-tpm
  query-tpm-models
  query-tpm-types
  query-uuid
  query-version
  query-vnc
  query-vnc-servers
  query-xen-replication-status
  quit
  remove-fd
  ringbuf-read
  ringbuf-write
  rtc-reset-reinjection
  screendump
  send-key
  set_link
  set_password
  stop
  system_powerdown
  system_reset
  system_wakeup
  trace-event-get-state
  trace-event-set-state
  transaction
  watchdog-set-action

-  The following command line options are unsupported:
  -acpitable ...
  -bt ...
  -chroot ...
  -cpu ... (all except host)
  -curses
  -device [adb-keyboard| adb-mouse|adlib|amd-iommu|AMDVI-PCI|ccid-card-emulated|
          ccid-card-passthrough|cfi.pflash02|cirrus-vga|cmd646-ide|cs4231a|
          dec-21154-p2p-bridge|dec-21154-sysbus|e1000 e500-ccsr|e500-pcihost|
          e500-spin|escc|esp|eTSEC|floppy|generic-sdhci|gus|grackle-pcihost|
          host-spapr-cpu-core|hyperv-testdev|i8042|i82374|i82378|ib700|icp|
          icp-kvm|ics|icskvm|igd-passthrough-isa-bridge|intel_iommu|
          ipmi-bmc-extern|ipmi-bmc-sim|isa-applesmc|isa-cirrus-vga|isa-debugcon|
          isa-debug-exit|isa-fdc|isa-ide|isa-ipmi-bt|isa-ipmi-kcs|isa-m48t59|
          isa-parallel|isa-vga|isabus-bridge|kvm-openpic|loader|lsi53c810a|
          macio-ide|macio-newworld|macio-nvram|macio-oldworld|mpc8544-guts|
          mpc8xxx_gpio|ne2k_isa|nvdimm|openpic|pc-dimm|pc-testdev|pc87312|
          piix3-ide|piix3-ide|piix3-ide-xen|piix3-usb-uhci|platform-bus-device|
          pnv-lpc|powernv-chip-POWER8|powernv-chip-POWER8E|
          powernv-chip-POWER8NVL|powernv-chip-POWER9|powernv-cpu-core-POWER8|
          powernv-cpu-core-POWER8E|powernv-cpu-core-POWER8NVL|
          powernv-cpu-core-POWER9|ppc4xx-pcihost|prep-systemio|raven-pcihost|
          rs6000-mc|sb16|sdhci-pci|sga spapr-nvram|spapr-pci-host-bridge|
          spapr-pci-vfio-host-bridge|spapr-rng|spapr-rtc|spapr-tce-table|
          spapr-vio-bridge|spapr-vlan|spapr-vscsi|spapr-vty|sysbus-m48t02|
          sysbus-m48t08|sysbus-m48t59|u3-agp-pcihost|uni-north-agp-pcihost|
          uni-north-internal-pci-pcihost|uni-north-pci|uni-north-pci-pcihost|
          unimplemented-device|usb-redir|vfio-pci-igd-lpc-bridge|
          vhost-vsock-device|vhost-vsock-pci|virtconsole|virtio-crypto-device|
          virtio-crypto-pci|virtio-mmio|virtio-vga|vmgenid|vmware-svga|
          xen-backend|xen-pci-passthrough|xen-platform|xen-pvdevice|xen-sysdev|
          xlnx.xps-ethernetlite|xlnx.xps-intc|xlnx.xps-timer|xlnx.xps-uartlite|
          *-i386-cpu|*-powerpc64-cpu|*-spapr-cpu-core|*-x86_64-cpu|vmcoreinfo]
          (the following are aliases of these unsupported devices: lsi|
          virtio-input-host|virtio-keyboard|virtio-mouse|virtio-tablet|
          virtio-gpu|piix-usb-uhci|mac-dbdma|ppc4xx-i2c)
          (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-hax
  -fda/-fdb ...
  -g ...
  -hda/-hdb/-hdc/-hdd ...
  -icount ...
  -L ...
  -M [40p|bamboo|g3beige|mac99|mpc8544ds|powernv|ppce500|prep|pseries-2.1|
     pseries-2.2|pseries-2.3|pseries-2.4|pseries-2.5|pseries-2.6|pseries-2.7|
     pseries-2.8|pseries-2.9|pseries-2.10|ref405ep|taihu|virtex-ml507]
  -machine [40p|bamboo|g3beige|mac99|mpc8544ds|powernv|ppce500|prep|pseries-2.1|
           pseries-2.2|pseries-2.3|pseries-2.4|pseries-2.5|pseries-2.6|
           pseries-2.7|pseries-2.8|pseries-2.10|ref405ep|taihu|virtex-ml507]
  -mtdblock file
  -net [dump|socket|vde] ...
  -netdev [dump|hubport|l2tpv3|socket|vde] ...
  -no-acpi
  -no-fd-bootchk
  -no-hpet
  -no-kvm
  -no-kvm-irqchip
  -no-kvm-pit
  -no-kvm-pit-reinjection
  -numa ...
  -option-rom ...
  -pflash file
  -portrait
  -prom-env ...
  -qtest ...
  -qtest-log ...
  -rotate
  -sd file
  -sdl
  -set ...
  -singlestep
  -snapshot
  -soundhw ...
  -spice
  -tb-size ...
  -tdf
  -tpmdev emulator ...
  -vga [cg3|tcx|virtio|cirrus|xenfb]
  -win2k-hack
  -xen-attach ...
  -xen-create
  -xen-domid ...

- The following monitor commands are unsupported:
  acl_add ...
  acl_policy ...
  acl_remove ...
  acl_reset ...
  acl_show ...
  block_job_cancel ...
  block_job_complete ...
  block_job_pause ...
  block_job_resume ...
  block_job_set_speed ...
  block_passwd ...
  commit ...
  drive_mirror ...
  expire_password ...
  hostfwd_add ...
  hostfwd_remove ...
  host_net_add ...
  host_net_remove ...
  nbd_server_add ...
  nbd server_start ...
  nbd_server_stop ...
  netdev_add
  netdev_del ...
  pcie_aer_inject_error ...
  set_link ...
  set_password ...
  singlestep ...
  snapshot_blkdev ...
  stopcapture ...
  wavcapture ...
  x_colo_lost_heartbeat

- The following QMP commands are unsupported:
  block-job-cancel
  block-job-complete
  block-job-pause
  block-job-resume
  block-job-set-speed
  change-backing-file
  drive-backup
  drive-mirror
  dump-skeys
  netdev_add
  netdev_del
  nbd-server-add
  nbd-server-start
  nbd-server-stop
  query-sev
  query-sev-launch-measure
  query-sev-capabilities
  x-blockdev-change
  x-blockdev-insert-medium
  x-blockdev-remove-medium
  x-colo-lost-heartbeat
  xen-colo-do-checkpoint
  xen-load-devices-state
  xen-save-devices-state
  xen-set-global-dirty-log
  xen-set-replication
openSUSE Build Service is sponsored by