qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [Bug 1635339] Re: qxl_pre_save assertion failure on vm "sav


From: Gerd Hoffmann
Subject: [Qemu-devel] [Bug 1635339] Re: qxl_pre_save assertion failure on vm "save"
Date: Fri, 07 Apr 2017 22:17:41 -0000

Not sure we want a failure mode for pre_save().

If we go for option (a) (from comment 9), I'd add a check when reading
the commands from the ring, not at migration time, so we don't run enter
a state where pre_save() can fail in the first place.  Because that will
break the windows drivers we might add a warning only for 2.9, then for
2.10 raise an error irq.  Something like this:

--- a/hw/display/qxl.c
+++ b/hw/display/qxl.c
@@ -639,6 +639,24 @@ static int interface_get_command(QXLInstance *sin, struct 
QXLCommandExt *ext)
         qxl->guest_primary.commands++;
         qxl_track_command(qxl, ext);
         qxl_log_command(qxl, "cmd", ext);
+        {
+            void *msg = qxl_phys2virt(qxl, ext->cmd.data, ext->group_id);
+            if (msg < (void *)qxl->vga.vram_ptr ||
+                msg > ((void *)qxl->vga.vram_ptr + qxl->vga.vram_size)) {
+#if 1
+                /* temporary, for 2.9 */
+                static int once;
+                if (!once) {
+                    fprintf(stderr, "qxl: guest bug: command not in ram bar, "
+                            "guest not migratable\n");
+                    once = true;
+                }
+#else
+                qxl_set_guest_bug(qxl, "command not in ram bar");
+                return false;
+#endif
+            }
+        }
         trace_qxl_ring_command_get(qxl->id, qxl_mode_to_string(qxl->mode));
         return true;
     default:

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1635339

Title:
  qxl_pre_save assertion failure on vm "save"

Status in QEMU:
  Confirmed

Bug description:
  When I try and save my Windows 10 VM, I see an assertion failure, and
  the machine is shut down.

  I see the following in the log:

  main_channel_handle_parsed: agent start
  qemu-system-x86_64: /build/qemu-Zwynhi/qemu-2.5+dfsg/hw/display/qxl.c:2101: 
qxl_pre_save: Assertion `d->last_release_offset < d->vga.vram_size' failed.
  2016-10-20 11:52:42.713+0000: shutting down

  Please let me know what other information would be relevant!

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1635339/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]