qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 0/6] virtio: refactor host notifiers


From: tu bo
Subject: Re: [Qemu-devel] [PATCH 0/6] virtio: refactor host notifiers
Date: Thu, 31 Mar 2016 13:47:46 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0

Hi Christian:

I got the same crash with qemu master + assertion patch + "[PATCH 0/6] virtio: refactor host notifiers" + Paolo's fix,

(gdb) bt
#0  blk_aio_read_entry (opaque=0x0) at block/block-backend.c:916
#1 0x000002aa2e8e88fe in coroutine_trampoline (i0=<optimized out>, i1=-1677703696) at util/coroutine-ucontext.c:78
#2  0x000003ffa85d150a in __makecontext_ret () from /lib64/libc.so.6


On 03/30/2016 12:27 AM, Christian Borntraeger wrote:
On 03/29/2016 03:50 PM, Paolo Bonzini wrote:


On 29/03/2016 13:45, Cornelia Huck wrote:
Hi Tu Bo,

please always include the assertion patch at
https://lists.gnu.org/archive/html/qemu-block/2016-03/msg00546.html in
your tests.  Can you include the backtrace from all threads with that patch?

thanks for your reminder about the assertion patch. Here is the
backtrace with qemu master + assertion patch + "[PATCH 0/6] virtio:
refactor host notifiers",

FWIW, I've been running this in a reboot loop for the last 2 1/2 hours.
Could you perhaps share your command line?

 From code inspection, the following is also necessary or at least a
good idea:

diff --git a/hw/block/dataplane/virtio-blk.c b/hw/block/dataplane/virtio-blk.c
index 6fb29e3..7fa8477 100644
--- a/hw/block/dataplane/virtio-blk.c
+++ b/hw/block/dataplane/virtio-blk.c
@@ -258,7 +258,7 @@ void virtio_blk_data_plane_stop(VirtIOBlockDataPlane *s)
      aio_context_acquire(s->ctx);

      /* Stop notifications for new requests from guest */
-    virtio_queue_aio_set_host_notifier_handler(s->vq, s->ctx, false, false);
+    virtio_queue_aio_set_host_notifier_handler(s->vq, s->ctx, true, false);

      /* Drain and switch bs back to the QEMU main loop */
      blk_set_aio_context(s->conf->conf.blk, qemu_get_aio_context());


Right. Tu Bo, you seem to have the best testcase for this.
Does your setup runs fine with this on top?

CHristian





reply via email to

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