[libvirt PATCH v2 00/15] WIP/RFC: add QEMU "-display dbus" support

marcandre.lureau at redhat.com marcandre.lureau at redhat.com
Thu Dec 2 14:23:56 UTC 2021


From: Marc-André Lureau <marcandre.lureau at redhat.com>

Hi,

This series implements supports for the upcoming QEMU "-display dbus" support.
Development is still in progress, but I hope to land the QEMU support early in
6.3 (last version posted:
https://patchew.org/QEMU/20211009210838.2219430-1-marcandre.lureau@redhat.com/).

By default, libvirt will start a private VM bus (sharing and reusing the
existing "vmstate" VM bus & code).

The feature set should cover the needs to replace Spice as local client of choice,
including 3daccel/dmabuf, audio, clipboard sharing, usb redirection, and arbitrary
chardev/channels (for serial etc).

The test Gtk4 client is also in progress, currently in development at
https://gitlab.com/marcandre.lureau/qemu-display/. A few dependencies, such as
zbus, require an upcoming release. virt-viewer & boxes will need a port to Gtk4
to make use of the shared widget.

Comments welcome, as we can still adjust the QEMU side etc.

thanks

v2: after Michal review
 - split patches for conf & qemu changes
 - start D-Bus in qemuExtDevicesStart()
 - use symlinks for xml2xml tests
 - teach domdisplay to return a dbus URI
 - rebase & bug fixes

Marc-André Lureau (15):
  qemu: add chardev-vdagent capability check
  qemu: add -display dbus capability check (to update to 6.3)
  conf: add <graphics type='dbus'>
  qemu: start the D-Bus daemon for the display
  qemu: add -display dbus support
  virsh: refactor/split cmdDomDisplay()
  virsh: report the D-Bus bus URI for domdisplay
  conf: add <audio type='dbus'> support
  qemu: add audio type 'dbus'
  conf: add dbus <clipboard>
  qemu: add dbus clipboard sharing
  conf: add <serial type='dbus'>
  qemu: add -chardev dbus support
  qemu: add usbredir type 'dbus'
  docs: document <graphics> type dbus

 docs/formatdomain.rst                         |  43 +-
 docs/schemas/basictypes.rng                   |   7 +
 docs/schemas/domaincommon.rng                 |  71 ++++
 src/bhyve/bhyve_command.c                     |   1 +
 src/conf/domain_conf.c                        | 141 ++++++-
 src/conf/domain_conf.h                        |  15 +
 src/conf/domain_validate.c                    |  41 +-
 src/libxl/libxl_conf.c                        |   1 +
 src/qemu/qemu_capabilities.c                  |   6 +
 src/qemu/qemu_capabilities.h                  |   2 +
 src/qemu/qemu_command.c                       |  80 +++-
 src/qemu/qemu_domain.c                        |   1 +
 src/qemu/qemu_driver.c                        |  10 +-
 src/qemu/qemu_extdevice.c                     |  13 +
 src/qemu/qemu_hotplug.c                       |   1 +
 src/qemu/qemu_monitor_json.c                  |  10 +
 src/qemu/qemu_process.c                       |  40 +-
 src/qemu/qemu_validate.c                      |  33 ++
 src/security/security_dac.c                   |   2 +
 src/vmx/vmx.c                                 |   1 +
 .../domaincapsdata/qemu_6.2.0-q35.x86_64.xml  |   1 +
 .../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml  |   1 +
 tests/domaincapsdata/qemu_6.2.0.x86_64.xml    |   1 +
 .../caps_6.1.0.x86_64.xml                     |   1 +
 .../caps_6.2.0.aarch64.xml                    |   1 +
 .../caps_6.2.0.x86_64.replies                 |  10 +-
 .../caps_6.2.0.x86_64.xml                     |   2 +
 .../graphics-dbus-address.args                |  30 ++
 .../graphics-dbus-address.xml                 |  35 ++
 .../qemuxml2argvdata/graphics-dbus-audio.args |  33 ++
 .../qemuxml2argvdata/graphics-dbus-audio.xml  |  45 +++
 .../graphics-dbus-chardev.args                |  32 ++
 .../graphics-dbus-chardev.xml                 |  43 ++
 .../graphics-dbus-clipboard.args              |  31 ++
 .../graphics-dbus-clipboard.xml               |  35 ++
 tests/qemuxml2argvdata/graphics-dbus-p2p.args |  30 ++
 tests/qemuxml2argvdata/graphics-dbus-p2p.xml  |  33 ++
 .../graphics-dbus-usbredir.args               |  34 ++
 .../graphics-dbus-usbredir.xml                |  30 ++
 tests/qemuxml2argvdata/graphics-dbus.args     |  30 ++
 tests/qemuxml2argvdata/graphics-dbus.xml      |  33 ++
 tests/qemuxml2argvtest.c                      |  21 +
 .../graphics-dbus-address.xml                 |   1 +
 .../graphics-dbus-audio.xml                   |   1 +
 .../graphics-dbus-chardev.xml                 |   1 +
 .../graphics-dbus-clipboard.xml               |   1 +
 .../qemuxml2xmloutdata/graphics-dbus-p2p.xml  |   1 +
 tests/qemuxml2xmloutdata/graphics-dbus.xml    |   1 +
 tests/qemuxml2xmltest.c                       |  20 +
 tools/virsh-domain.c                          | 366 +++++++++---------
 50 files changed, 1231 insertions(+), 192 deletions(-)
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-address.args
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-address.xml
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-audio.args
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-audio.xml
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-chardev.args
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-clipboard.args
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-clipboard.xml
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-p2p.args
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-p2p.xml
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-usbredir.args
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-usbredir.xml
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus.args
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus.xml
 create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-address.xml
 create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-audio.xml
 create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-chardev.xml
 create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-clipboard.xml
 create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-p2p.xml
 create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus.xml

-- 
2.34.1.8.g35151cf07204





More information about the libvir-list mailing list