qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] virtio: Register host notifier handler as exter


From: Fam Zheng
Subject: Re: [Qemu-devel] [PATCH] virtio: Register host notifier handler as external
Date: Fri, 22 Apr 2016 00:29:22 +0800
User-agent: Mutt/1.6.0 (2016-04-01)

On Thu, 04/21 10:04, Fam Zheng wrote:
> This ensures the bdrv_drained_begin() in block layer is effective and
> fixes launchpad bug #1570134.
> 
> Signed-off-by: Fam Zheng <address@hidden>
> ---
>  hw/virtio/virtio.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
> index f745c4a..002c2c6 100644
> --- a/hw/virtio/virtio.c
> +++ b/hw/virtio/virtio.c
> @@ -1829,10 +1829,11 @@ void 
> virtio_queue_set_host_notifier_fd_handler(VirtQueue *vq, bool assign,
>                                                 bool set_handler)
>  {
>      if (assign && set_handler) {
> -        event_notifier_set_handler(&vq->host_notifier,
> -                                   virtio_queue_host_notifier_read);
> +        aio_set_event_notifier(qemu_get_aio_context(), &vq->host_notifier,
> +                               true, virtio_queue_host_notifier_read);
>      } else {
> -        event_notifier_set_handler(&vq->host_notifier, NULL);
> +        aio_set_event_notifier(qemu_get_aio_context(), &vq->host_notifier,
> +                               true, NULL);
>      }
>      if (!assign) {
>          /* Test and clear notifier before after disabling event,

This isn't the right fix, at least not in the intended way. The crash is gone
because in this patch the handler is moved from iohandler's AioContext to the
main loop AioContext, on which the mirror BH is scheduled, and consequently the
mirror BH handler always runs first than the VQ handler.

For 2.6 I think what we could do is reverting some changes in 5a7e7a0bad1 for
non-dataplane case, i.e. call mirror_exit directly in mirror_run.

It's too late today and I'll look into this tomorrow. The fix will probably be
left for -rc4.

Fam



reply via email to

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