Hi
On Wed, Jan 29, 2025 at 5:58 PM Daniel P. Berrangé <berrange(a)redhat.com> wrote:
On Wed, Jan 29, 2025 at 05:40:34PM +0400, marcandre.lureau(a)redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau(a)redhat.com>
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau(a)redhat.com>
> ---
> src/qemu/qemu_command.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index f08dba7988..dc142b366a 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -8420,6 +8420,7 @@ qemuBuildGraphicsCommandLine(virQEMUDriverConfig *cfg,
>
> break;
> case VIR_DOMAIN_GRAPHICS_TYPE_RDP:
> + break;
> case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP:
> virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> _("graphics type '%1$s' not
supported"),
> @@ -9974,6 +9975,7 @@ qemuBuildCommandLineValidate(virQEMUDriver *driver,
> int spice = 0;
> int egl_headless = 0;
> int dbus = 0;
> + int rdp = 0;
>
> if (!driver->privileged) {
> /* If we have no cgroups then we can have no tunings that
> @@ -10022,15 +10024,17 @@ qemuBuildCommandLineValidate(virQEMUDriver *driver,
> ++dbus;
> break;
> case VIR_DOMAIN_GRAPHICS_TYPE_RDP:
> + ++rdp;
> + break;
> case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP:
> case VIR_DOMAIN_GRAPHICS_TYPE_LAST:
> break;
> }
> }
>
> - if (sdl > 1 || vnc > 1 || spice > 1 || egl_headless > 1 || dbus
> 1) {
> + if (sdl > 1 || vnc > 1 || spice > 1 || egl_headless > 1 || dbus
> 1 || rdp > 1) {
> virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> - _("only 1 graphics device of each type (sdl, vnc,
spice, headless, dbus) is supported"));
> + _("only 1 graphics device of each type (sdl, vnc,
spice, headless, dbus, rdp) is supported"));
> return -1;
> }
The 'rdp' type also uses the 'dbus' backend in QEMU, so checking
dbus > 1 || rdp > 1, allows for two uses of the 'dbus' backend.
Hypothetically we could also have future 'vnc' or 'spice' types
which used the dbus QEMU backend for out of process impls.
I don't think qemu supports multiple instances of the same graphics
backends, this is true for -display dbus.
If we were to have vnc or spice server out of process (I doubt someone
will do one for spice, but I started one for vnc, fwiw), they would
use the same dbus graphics instance. This check is thus still valid,
only one of each kind is supported atm. Or am I missing something?