On Fri, Feb 02, 2024 at 04:31:55PM +0100, Hanna Czenczek wrote:
> v1:
>
> https://lists.nongnu.org/archive/html/qemu-block/2024-01/msg00336.html
>
>
> Hi,
>
> This is basically the same series as v1: When using
> aio_set_event_notifier_poll(), the io_poll_end() callback is only
> invoked when polling ends, not when the notifier is being removed while
> in a polling section. This can leave the virtqueue notifier disabled
> during drained sections, which however is not a bad thing. We just need
> to ensure they are re-enabled after the drain, and kick the virtqueue
> once to pick up all the requests that came in during the drained
> section.
>
> Patch 1 is a technically unrelated fix, but addresses a problem that
> became visible with patch 2 applied.
>
> Patch 3 is a small (optional) clean-up patch.
>
>
> v2:
> - Changed the title of this series and patch 2 (was: "Keep notifications
> disabled durin drain"): Keeping the notifier disabled was something
> the initial RFC did, this version (v1 too) just ensures the notifier
> is enabled after the drain, regardless of its state before.
>
> - Use event_notifier_set() instead of virtio_queue_notify() in patch 2
>
> - Added patch 3
>
>
> Hanna Czenczek (3):
> virtio-scsi: Attach event vq notifier with no_poll
> virtio: Re-enable notifications after drain
> virtio-blk: Use ioeventfd_attach in start_ioeventfd
>
> include/block/aio.h | 7 ++++++-
> hw/block/virtio-blk.c | 21 ++++++++++-----------
> hw/scsi/virtio-scsi.c | 7 ++++++-
> hw/virtio/virtio.c | 42 ++++++++++++++++++++++++++++++++++++++++++
> 4 files changed, 64 insertions(+), 13 deletions(-)
>
> --
> 2.43.0
>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>