diff mbox

[v3,for-2.6,3/5] virtio: Mark host notifiers as external

Message ID 1461333236-5942-4-git-send-email-famz@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Fam Zheng April 22, 2016, 1:53 p.m. UTC
The effect of this change is the block layer drained section can work,
for example when mirror job is being completed.

Signed-off-by: Fam Zheng <famz@redhat.com>
---
 hw/virtio/virtio.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Michael S. Tsirkin May 1, 2016, 9:55 a.m. UTC | #1
On Sun, May 01, 2016 at 11:15:10AM +0300, Michael S. Tsirkin wrote:
> On Fri, Apr 22, 2016 at 09:53:54PM +0800, Fam Zheng wrote:
> > The effect of this change is the block layer drained section can work,
> > for example when mirror job is being completed.
> > 
> > Signed-off-by: Fam Zheng <famz@redhat.com>
> 
> This is indentical to v2, so why don't you include the
> Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
> tag I sent on v2?

Oh, I asked this before. Sorry about the noise.

> > ---
> >  hw/virtio/virtio.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
> > index fffa09f..30ede3d 100644
> > --- a/hw/virtio/virtio.c
> > +++ b/hw/virtio/virtio.c
> > @@ -1829,10 +1829,10 @@ 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, false,
> > +        event_notifier_set_handler(&vq->host_notifier, true,
> >                                     virtio_queue_host_notifier_read);
> >      } else {
> > -        event_notifier_set_handler(&vq->host_notifier, false, NULL);
> > +        event_notifier_set_handler(&vq->host_notifier, true, NULL);
> >      }
> >      if (!assign) {
> >          /* Test and clear notifier before after disabling event,
> > -- 
> > 2.8.0
Paolo Bonzini May 9, 2016, 12:19 p.m. UTC | #2
On 22/04/2016 15:53, Fam Zheng wrote:
> The effect of this change is the block layer drained section can work,
> for example when mirror job is being completed.
> 
> Signed-off-by: Fam Zheng <famz@redhat.com>

For 2.7 I think we should do something else: make non-dataplane
virtio-{blk,scsi} use the same code path as dataplane, including usage
of virtio_queue_aio_set_host_notifier_handler.

The virtio-blk/virtio-scsi ioeventfd can then be added to
qemu_get_aio_context() and patch 5 can go (possibly some of the
dependencies too).

For 2.6 however this was fine.

Thanks,

Paolo

> ---
>  hw/virtio/virtio.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
> index fffa09f..30ede3d 100644
> --- a/hw/virtio/virtio.c
> +++ b/hw/virtio/virtio.c
> @@ -1829,10 +1829,10 @@ 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, false,
> +        event_notifier_set_handler(&vq->host_notifier, true,
>                                     virtio_queue_host_notifier_read);
>      } else {
> -        event_notifier_set_handler(&vq->host_notifier, false, NULL);
> +        event_notifier_set_handler(&vq->host_notifier, true, NULL);
>      }
>      if (!assign) {
>          /* Test and clear notifier before after disabling event,
>
diff mbox

Patch

diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index fffa09f..30ede3d 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -1829,10 +1829,10 @@  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, false,
+        event_notifier_set_handler(&vq->host_notifier, true,
                                    virtio_queue_host_notifier_read);
     } else {
-        event_notifier_set_handler(&vq->host_notifier, false, NULL);
+        event_notifier_set_handler(&vq->host_notifier, true, NULL);
     }
     if (!assign) {
         /* Test and clear notifier before after disabling event,