qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PULL 12/23] virtio: use VRingMemoryRegionCaches for av


From: Alex Williamson
Subject: Re: [Qemu-devel] [PULL 12/23] virtio: use VRingMemoryRegionCaches for avail and used rings
Date: Wed, 22 Feb 2017 17:32:25 -0700

On Wed, 22 Feb 2017 10:03:56 +0100
Paolo Bonzini <address@hidden> wrote:

> 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).

I hit this as well, the patch below resolves it.

Tested-by: Alex Williamson <address@hidden>
 
> commit c1aa478c7181c543606ca81404c59e126d66213d
> Author: Paolo Bonzini <address@hidden>
> 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 <address@hidden>
>     Signed-off-by: Paolo Bonzini <address@hidden>
> 
> 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;
>      }
>  
> 




reply via email to

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