All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
	"Cleber Rosa" <crosa@redhat.com>,
	"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>
Subject: [PULL 04/24] spice: delay starting until display are initialized
Date: Fri,  5 Feb 2021 07:56:00 +0100	[thread overview]
Message-ID: <20210205065620.1726554-5-kraxel@redhat.com> (raw)
In-Reply-To: <20210205065620.1726554-1-kraxel@redhat.com>

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

QEMU used to run qemu_spice.display_init() before vm_start(), and
QXL/display interfaces where started then. Now, vm_start() happens
before QXL/display interfaces are added and Spice server doesn't
automatically start them in this case (fixed in spice git)

Fixes Spice regression introduced after 5.2, with refactoring commits
b4e1a34211 ("vl: remove separate preconfig main_loop") and
facf7c60ee ("vl: initialize displays _after_ exiting preconfiguration"),
probably others.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20210129152351.161971-1-marcandre.lureau@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 include/ui/qemu-spice.h | 1 +
 ui/spice-core.c         | 9 ++++++++-
 ui/spice-display.c      | 2 ++
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/include/ui/qemu-spice.h b/include/ui/qemu-spice.h
index 2beb7929728c..71ecd6cfd106 100644
--- a/include/ui/qemu-spice.h
+++ b/include/ui/qemu-spice.h
@@ -28,6 +28,7 @@
 
 void qemu_spice_input_init(void);
 void qemu_spice_display_init(void);
+void qemu_spice_display_init_done(void);
 bool qemu_spice_have_display_interface(QemuConsole *con);
 int qemu_spice_add_display_interface(QXLInstance *qxlin, QemuConsole *con);
 int qemu_spice_migrate_info(const char *hostname, int port, int tls_port,
diff --git a/ui/spice-core.c b/ui/spice-core.c
index 514c0f975443..beee932f5546 100644
--- a/ui/spice-core.c
+++ b/ui/spice-core.c
@@ -625,6 +625,14 @@ static void vm_change_state_handler(void *opaque, int running,
     }
 }
 
+void qemu_spice_display_init_done(void)
+{
+    if (runstate_is_running()) {
+        qemu_spice_display_start();
+    }
+    qemu_add_vm_change_state_handler(vm_change_state_handler, NULL);
+}
+
 static void qemu_spice_init(void)
 {
     QemuOpts *opts = QTAILQ_FIRST(&qemu_spice_opts.head);
@@ -796,7 +804,6 @@ static void qemu_spice_init(void)
 
     qemu_spice_input_init();
 
-    qemu_add_vm_change_state_handler(vm_change_state_handler, NULL);
     qemu_spice_display_stop();
 
     g_free(x509_key_file);
diff --git a/ui/spice-display.c b/ui/spice-display.c
index 0178d5766d2c..3d3e3bcb2246 100644
--- a/ui/spice-display.c
+++ b/ui/spice-display.c
@@ -1188,4 +1188,6 @@ void qemu_spice_display_init(void)
         }
         qemu_spice_display_init_one(con);
     }
+
+    qemu_spice_display_init_done();
 }
-- 
2.29.2



  parent reply	other threads:[~2021-02-05  6:58 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-05  6:55 [PULL 00/24] Vga ui 20210205 patches Gerd Hoffmann
2021-02-05  6:55 ` [PULL 01/24] hw/display/qxl: Fix bad printf format specifiers Gerd Hoffmann
2021-02-05  6:55 ` [PULL 02/24] qxl: set qxl.ssd.dcl.con on secondary devices Gerd Hoffmann
2021-02-05  6:55 ` [PULL 03/24] qxl: also notify the rendering is done when skipping it Gerd Hoffmann
2021-02-05  6:56 ` Gerd Hoffmann [this message]
2021-02-05  6:56 ` [PULL 05/24] vhost-user-gpu: check backend for EDID support Gerd Hoffmann
2021-02-05  6:56 ` [PULL 06/24] vhost-user-gpu: handle vhost-user-gpu features in a callback Gerd Hoffmann
2021-02-05  6:56 ` [PULL 07/24] vhost-user-gpu: use an extandable state enum for commands Gerd Hoffmann
2021-02-05  6:56 ` [PULL 08/24] vhost-user-gpu: handle display-info in a callback Gerd Hoffmann
2021-02-05  6:56 ` [PULL 09/24] ui: remove extra #ifdef CONFIG_OPENGL Gerd Hoffmann
2021-02-05  6:56 ` [PULL 10/24] ui: remove gl_ctx_get_current Gerd Hoffmann
2021-02-05  6:56 ` [PULL 11/24] ui: add gd_gl_area_scanout_disable Gerd Hoffmann
2021-02-05  6:56 ` [PULL 12/24] ui: annotate DCLOps callback requirements Gerd Hoffmann
2021-02-05  6:56 ` [PULL 13/24] ui: remove console_has_gl_dmabuf() Gerd Hoffmann
2021-02-05  6:56 ` [PULL 14/24] vhost-user-gpu: add a configuration flag for dmabuf usage Gerd Hoffmann
2021-02-05  6:56 ` [PULL 15/24] ui: add an optional get_flags callback to GraphicHwOps Gerd Hoffmann
2021-02-05  6:56 ` [PULL 16/24] ui: add a DCLOps callback to check dmabuf support Gerd Hoffmann
2021-02-05  6:56 ` [PULL 17/24] ui: check hw requirements during DCL registration Gerd Hoffmann
2021-02-05  6:56 ` [PULL 18/24] ui: add qemu_egl_has_dmabuf helper Gerd Hoffmann
2021-02-05  6:56 ` [PULL 19/24] ui: check gtk-egl dmabuf support Gerd Hoffmann
2021-02-05  6:56 ` [PULL 20/24] ui: add egl dmabuf import to gtkglarea Gerd Hoffmann
2021-02-05  6:56 ` [PULL 21/24] virtio-gpu: avoid re-entering cmdq processing Gerd Hoffmann
2021-02-05  6:56 ` [PULL 22/24] display/ui: add a callback to indicate GL state is flushed Gerd Hoffmann
2021-02-05  6:56 ` [PULL 23/24] chardev: check if the chardev is registered for yanking Gerd Hoffmann
2021-02-05  6:56 ` [PULL 24/24] tests: add some virtio-gpu & vhost-user-gpu acceptance test Gerd Hoffmann
2021-02-05 11:56 ` [PULL 00/24] Vga ui 20210205 patches Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210205065620.1726554-5-kraxel@redhat.com \
    --to=kraxel@redhat.com \
    --cc=alex.williamson@redhat.com \
    --cc=crosa@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=wainersm@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.