Re: [Qemu-devel] [PATCH v4 0/6] virtio: Merge virtio-{blk, scsi} host notifier handling paths

2016-07-14 Thread Stefan Hajnoczi
On Wed, Jul 13, 2016 at 12:32:59PM +0200, Paolo Bonzini wrote:
> On 13/07/2016 07:09, Fam Zheng wrote:
> > v4: Drop patch 1. [Cornelia]
> > Add the last trivial patch.
> > 
> > v3: Rebase to master.
> > Squash 4 into 3. [Paolo]
> > Add comment and commit message. [Stefan]
> > Add Stefan's r-b in patch 1 and 2.
> > 
> > v2: Only convert virtio-{blk,scsi}. [Paolo]
> > 
> > The benifit of this is we don't use event_notifier_set_handler even in
> > non-dataplane now, which in turn makes virtio-blk and virtio-scsi follow 
> > block
> > layer aio context semantics. Specifically, I/O requests must come from
> > blk_get_aio_context(blk) events, rather than iohandler_get_aio_context(), so
> > that bdrv_drained_begin/end will work as expected.
> > 
> > Patch 4 reverts the hack (ab27c3b5e7) we added for 2.6. Lately, commit
> > b880481579 added another pair of bdrv_drained_begin/end so the crash cannot
> > happen even without ab27c3b5e7, but in order to avoid leaking requests, 
> > patch
> > two is still a must.
> > 
> > Fam Zheng (6):
> >   virtio: Add typedef for handle_output
> >   virtio: Introduce virtio_add_queue_aio
> >   virtio-blk: Call virtio_add_queue_aio
> >   virtio-scsi: Call virtio_add_queue_aio
> >   Revert "mirror: Workaround for unexpected iohandler events during
> > completion"
> >   virtio-scsi: Replace HandleOutput typedef
> > 
> >  block/mirror.c  |  9 -
> >  hw/block/virtio-blk.c   |  2 +-
> >  hw/scsi/virtio-scsi.c   | 14 ++---
> >  hw/virtio/virtio.c  | 45 
> > +
> >  include/hw/virtio/virtio-scsi.h |  6 ++
> >  include/hw/virtio/virtio.h  |  8 ++--
> >  6 files changed, 52 insertions(+), 32 deletions(-)
> > 
> 
> I really would like this in 2.7, because it's a superior solution.

This is going via Michael's virtio tree?

Stefan


signature.asc
Description: PGP signature


Re: [Qemu-devel] [PATCH v4 0/6] virtio: Merge virtio-{blk, scsi} host notifier handling paths

2016-07-14 Thread Stefan Hajnoczi
On Wed, Jul 13, 2016 at 01:09:42PM +0800, Fam Zheng wrote:
> v4: Drop patch 1. [Cornelia]
> Add the last trivial patch.
> 
> v3: Rebase to master.
> Squash 4 into 3. [Paolo]
> Add comment and commit message. [Stefan]
> Add Stefan's r-b in patch 1 and 2.
> 
> v2: Only convert virtio-{blk,scsi}. [Paolo]
> 
> The benifit of this is we don't use event_notifier_set_handler even in
> non-dataplane now, which in turn makes virtio-blk and virtio-scsi follow block
> layer aio context semantics. Specifically, I/O requests must come from
> blk_get_aio_context(blk) events, rather than iohandler_get_aio_context(), so
> that bdrv_drained_begin/end will work as expected.
> 
> Patch 4 reverts the hack (ab27c3b5e7) we added for 2.6. Lately, commit
> b880481579 added another pair of bdrv_drained_begin/end so the crash cannot
> happen even without ab27c3b5e7, but in order to avoid leaking requests, patch
> two is still a must.
> 
> Fam Zheng (6):
>   virtio: Add typedef for handle_output
>   virtio: Introduce virtio_add_queue_aio
>   virtio-blk: Call virtio_add_queue_aio
>   virtio-scsi: Call virtio_add_queue_aio
>   Revert "mirror: Workaround for unexpected iohandler events during
> completion"
>   virtio-scsi: Replace HandleOutput typedef
> 
>  block/mirror.c  |  9 -
>  hw/block/virtio-blk.c   |  2 +-
>  hw/scsi/virtio-scsi.c   | 14 ++---
>  hw/virtio/virtio.c  | 45 
> +
>  include/hw/virtio/virtio-scsi.h |  6 ++
>  include/hw/virtio/virtio.h  |  8 ++--
>  6 files changed, 52 insertions(+), 32 deletions(-)
> 
> -- 
> 2.7.4
> 
> 

Reviewed-by: Stefan Hajnoczi 


signature.asc
Description: PGP signature


Re: [Qemu-devel] [PATCH v4 0/6] virtio: Merge virtio-{blk, scsi} host notifier handling paths

2016-07-13 Thread Paolo Bonzini


On 13/07/2016 07:09, Fam Zheng wrote:
> v4: Drop patch 1. [Cornelia]
> Add the last trivial patch.
> 
> v3: Rebase to master.
> Squash 4 into 3. [Paolo]
> Add comment and commit message. [Stefan]
> Add Stefan's r-b in patch 1 and 2.
> 
> v2: Only convert virtio-{blk,scsi}. [Paolo]
> 
> The benifit of this is we don't use event_notifier_set_handler even in
> non-dataplane now, which in turn makes virtio-blk and virtio-scsi follow block
> layer aio context semantics. Specifically, I/O requests must come from
> blk_get_aio_context(blk) events, rather than iohandler_get_aio_context(), so
> that bdrv_drained_begin/end will work as expected.
> 
> Patch 4 reverts the hack (ab27c3b5e7) we added for 2.6. Lately, commit
> b880481579 added another pair of bdrv_drained_begin/end so the crash cannot
> happen even without ab27c3b5e7, but in order to avoid leaking requests, patch
> two is still a must.
> 
> Fam Zheng (6):
>   virtio: Add typedef for handle_output
>   virtio: Introduce virtio_add_queue_aio
>   virtio-blk: Call virtio_add_queue_aio
>   virtio-scsi: Call virtio_add_queue_aio
>   Revert "mirror: Workaround for unexpected iohandler events during
> completion"
>   virtio-scsi: Replace HandleOutput typedef
> 
>  block/mirror.c  |  9 -
>  hw/block/virtio-blk.c   |  2 +-
>  hw/scsi/virtio-scsi.c   | 14 ++---
>  hw/virtio/virtio.c  | 45 
> +
>  include/hw/virtio/virtio-scsi.h |  6 ++
>  include/hw/virtio/virtio.h  |  8 ++--
>  6 files changed, 52 insertions(+), 32 deletions(-)
> 

I really would like this in 2.7, because it's a superior solution.

Paolo



Re: [Qemu-devel] [PATCH v4 0/6] virtio: Merge virtio-{blk, scsi} host notifier handling paths

2016-07-13 Thread Cornelia Huck
On Wed, 13 Jul 2016 13:09:42 +0800
Fam Zheng  wrote:

> v4: Drop patch 1. [Cornelia]
> Add the last trivial patch.
> 
> v3: Rebase to master.
> Squash 4 into 3. [Paolo]
> Add comment and commit message. [Stefan]
> Add Stefan's r-b in patch 1 and 2.
> 
> v2: Only convert virtio-{blk,scsi}. [Paolo]
> 
> The benifit of this is we don't use event_notifier_set_handler even in
> non-dataplane now, which in turn makes virtio-blk and virtio-scsi follow block
> layer aio context semantics. Specifically, I/O requests must come from
> blk_get_aio_context(blk) events, rather than iohandler_get_aio_context(), so
> that bdrv_drained_begin/end will work as expected.
> 
> Patch 4 reverts the hack (ab27c3b5e7) we added for 2.6. Lately, commit
> b880481579 added another pair of bdrv_drained_begin/end so the crash cannot
> happen even without ab27c3b5e7, but in order to avoid leaking requests, patch
> two is still a must.
> 
> Fam Zheng (6):
>   virtio: Add typedef for handle_output
>   virtio: Introduce virtio_add_queue_aio
>   virtio-blk: Call virtio_add_queue_aio
>   virtio-scsi: Call virtio_add_queue_aio
>   Revert "mirror: Workaround for unexpected iohandler events during
> completion"
>   virtio-scsi: Replace HandleOutput typedef
> 
>  block/mirror.c  |  9 -
>  hw/block/virtio-blk.c   |  2 +-
>  hw/scsi/virtio-scsi.c   | 14 ++---
>  hw/virtio/virtio.c  | 45 
> +
>  include/hw/virtio/virtio-scsi.h |  6 ++
>  include/hw/virtio/virtio.h  |  8 ++--
>  6 files changed, 52 insertions(+), 32 deletions(-)

Lightly tested with virtio-blk on s390x. Survives some disk I/O and
managedsave/restore via libvirt.