On 21/02/2017 18:54, Laszlo Ersek wrote: > Actually, QEMU segfaults. From the dmesg: > > [Tue Feb 21 18:47:28 2017] CPU 0/KVM[8298]: segfault at 48 ip > 00007fcb5dd02105 sp 00007fcb49efc270 error 4 in > qemu-system-x86_64[7fcb5dae3000+905000] > > Complete backtrace below. (Thread 11 seems to be the one > segfaulting.)
Indeed. It's the virtio-blk device that is segfaulting, please try this one liner (haven't reproduced it, but it seems obvious with the backtrace and some sleep). commit c1aa478c7181c543606ca81404c59e126d66213d Author: Paolo Bonzini <pbonz...@redhat.com> Date: Wed Feb 22 10:02:37 2017 +0100 virtio: check for vring setup in virtio_queue_empty If the vring has not been set up, there is nothing in the virtqueue. virtio_queue_host_notifier_aio_poll calls virtio_queue_empty even in this case; we have to filter it out just like virtio_queue_notify_aio_vq. Reported-by: Gerd Hoffmann <kra...@redhat.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 23483c7..e487e36 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -2291,7 +2291,7 @@ static bool virtio_queue_host_notifier_aio_poll(void *opaque) VirtQueue *vq = container_of(n, VirtQueue, host_notifier); bool progress; - if (virtio_queue_empty(vq)) { + if (!vq->vring.desc || virtio_queue_empty(vq)) { return false; }