qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] commit 3dcadce5076d4b42fa395c39662d65e050b77784 breaks qxl


From: Brad Campbell
Subject: [Qemu-devel] commit 3dcadce5076d4b42fa395c39662d65e050b77784 breaks qxl on my x64 host.
Date: Mon, 02 Mar 2015 21:55:20 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0

G'day all,

I've had an annoying problem on a test box and I've only just got around to bisecting it.

Host is a Debian ~7(ish) system. Fairly stock. Spice and qemu are both tracking git head. This problem reared its ugly head for me just after christmas when I updated the qemu tree. I worked around it by backing up to v2.2.0 until I had time to look into it further.

Guest is being invoked with :
qemu -enable-kvm\
 -m 24576\
 -rtc base=localtime\
 -vga qxl\
 -device qxl\
 -net nic,model=virtio\
 -net tap,ifname=tap0,script=/etc/qemu-ifup,vhost=on\
 -usbdevice tablet\
 -spice port=5930,disable-ticketing\
-drive file=/dev/disk/by-id/scsi-SATA_OCZ_VERTEX-PLUSU4G2QIJ3DRJ6B992F7Q7-part$I,if=virtio,cache=unsafe,format=raw -boot c\ -drive file=/home/brad/Nobackup/Cad_Storage.raw,if=virtio,cache=unsafe,format=raw \
 -device virtio-serial\
 -chardev spicevmc,id=vdagent,name=vdagent\
 -device virtserialport,chardev=vdagent,name=com.redhat.spice.0\
 -smp 3,maxcpus=3,cores=3,threads=1,sockets=1\
 -cpu host\

The aforementioned commit causes qemu to segfault on startup. It bisects to that particular commit, and reverting that single commit from current git head makes the problem go away.

Is there anything I can do to provide further information? Or am I doing something obviously dumb?

Bisect log for those following along at home.

address@hidden:~/qemu$ git bisect log
git bisect start
# bad: [2dffe5516e74215fadf2e0f5ee401db4d5a86f7a] Merge remote-tracking branch 'remotes/ehabkost/tags/numa-pull-request' into staging
git bisect bad 2dffe5516e74215fadf2e0f5ee401db4d5a86f7a
# good: [45e1611de8be0eae55967694dd6e627c2dc354f2] Update version for v2.2.0 release
git bisect good 45e1611de8be0eae55967694dd6e627c2dc354f2
# bad: [707ff80021ccd7a68f4b3d2c44eebf87efbb41c4] Add device listener interface
git bisect bad 707ff80021ccd7a68f4b3d2c44eebf87efbb41c4
# bad: [756ae78b275a0625b4559a8fc448df4c6eb331a8] tap: fix vcpu long time io blocking on tap
git bisect bad 756ae78b275a0625b4559a8fc448df4c6eb331a8
# good: [99c9c3cb24e566258a0a141178934f9cb5198842] Merge remote-tracking branch 'remotes/mjt/tags/pull-trivial-patches-2014-12-11' into staging
git bisect good 99c9c3cb24e566258a0a141178934f9cb5198842
# good: [dfa9c2a0f4d0a0c8b2c1449ecdbb1297427e1560] Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging
git bisect good dfa9c2a0f4d0a0c8b2c1449ecdbb1297427e1560
# good: [d4fa5354a246a1c6cb538a5d8ebcc21206d502fb] target-mips: remove excp_names[] from linux-user as it is unused
git bisect good d4fa5354a246a1c6cb538a5d8ebcc21206d502fb
# good: [4db753b1ac4aedc6cd67fb13d50e5015ce8052a5] Merge remote-tracking branch 'remotes/amit-migration/tags/for-2.3-2' into staging
git bisect good 4db753b1ac4aedc6cd67fb13d50e5015ce8052a5
# bad: [339aaf5b7f26d1e638641c59a44883b7654bd8ea] qemu-log: add log category for MMU info
git bisect bad 339aaf5b7f26d1e638641c59a44883b7654bd8ea
# bad: [cf7856adefebe86e0cd50302d93b3045e3111690] spice: do not require TCP ports
git bisect bad cf7856adefebe86e0cd50302d93b3045e3111690
# bad: [3dcadce5076d4b42fa395c39662d65e050b77784] spice: reduce refresh rate in native mode
git bisect bad 3dcadce5076d4b42fa395c39662d65e050b77784
address@hidden:~/qemu$ git bisect good
3dcadce5076d4b42fa395c39662d65e050b77784 is the first bad commit
commit 3dcadce5076d4b42fa395c39662d65e050b77784
Author: Gerd Hoffmann <address@hidden>
Date:   Tue Nov 4 14:16:12 2014 +0100

    spice: reduce refresh rate in native mode

    Now that cursor updates are out of the way qxl needs the refresh timer
    only when when running in vga mode, for dirty bitmap checking.  In
    native qxl mode the guest will notify us, so we don't need to poll and
    can use the idle interval (one refresh wakeup every few seconds).

    Cc: Marc-André Lureau <address@hidden>
    Signed-off-by: Gerd Hoffmann <address@hidden>

:040000 040000 52c9089d73c6713c3e1c6fbcdfa16f8d5943088a d1b50857523f19ca7476e90064a4f273a4bdd4af M hw
address@hidden:~/qemu$ git show 3dcadce5076d4b42fa395c39662d65e050b77784
commit 3dcadce5076d4b42fa395c39662d65e050b77784
Author: Gerd Hoffmann <address@hidden>
Date:   Tue Nov 4 14:16:12 2014 +0100

    spice: reduce refresh rate in native mode

    Now that cursor updates are out of the way qxl needs the refresh timer
    only when when running in vga mode, for dirty bitmap checking.  In
    native qxl mode the guest will notify us, so we don't need to poll and
    can use the idle interval (one refresh wakeup every few seconds).

    Cc: Marc-André Lureau <address@hidden>
    Signed-off-by: Gerd Hoffmann <address@hidden>

diff --git a/hw/display/qxl.c b/hw/display/qxl.c
index 5151bac..61df477 100644
--- a/hw/display/qxl.c
+++ b/hw/display/qxl.c
@@ -1092,6 +1092,7 @@ static void qxl_enter_vga_mode(PCIQXLDevice *d)
     spice_qxl_driver_unload(&d->ssd.qxl);
 #endif
     graphic_console_set_hwops(d->ssd.dcl.con, d->vga.hw_ops, &d->vga);
+ update_displaychangelistener(&d->ssd.dcl, GUI_REFRESH_INTERVAL_DEFAULT);
     qemu_spice_create_host_primary(&d->ssd);
     d->mode = QXL_MODE_VGA;
     vga_dirty_log_start(&d->vga);
@@ -1105,6 +1106,7 @@ static void qxl_exit_vga_mode(PCIQXLDevice *d)
     }
     trace_qxl_exit_vga_mode(d->id);
     graphic_console_set_hwops(d->ssd.dcl.con, &qxl_ops, d);
+    update_displaychangelistener(&d->ssd.dcl, GUI_REFRESH_INTERVAL_IDLE);
     vga_dirty_log_stop(&d->vga);
     qxl_destroy_primary(d, QXL_SYNC);
 }
@@ -1153,6 +1155,7 @@ static void qxl_soft_reset(PCIQXLDevice *d)
         qxl_enter_vga_mode(d);
     } else {
         d->mode = QXL_MODE_UNDEFINED;
+ update_displaychangelistener(&d->ssd.dcl, GUI_REFRESH_INTERVAL_IDLE);
     }
 }

Regards,
Brad



reply via email to

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