[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 12/21] xen-block: implement BlockDevOps->drained_begin()
From: |
Anthony PERARD |
Subject: |
Re: [PATCH v5 12/21] xen-block: implement BlockDevOps->drained_begin() |
Date: |
Tue, 16 May 2023 15:24:07 +0100 |
On Thu, May 04, 2023 at 03:53:18PM -0400, Stefan Hajnoczi wrote:
> Detach event channels during drained sections to stop I/O submission
> from the ring. xen-block is no longer reliant on aio_disable_external()
> after this patch. This will allow us to remove the
> aio_disable_external() API once all other code that relies on it is
> converted.
>
> Extend xen_device_set_event_channel_context() to allow ctx=NULL. The
> event channel still exists but the event loop does not monitor the file
> descriptor. Event channel processing can resume by calling
> xen_device_set_event_channel_context() with a non-NULL ctx.
>
> Factor out xen_device_set_event_channel_context() calls in
> hw/block/dataplane/xen-block.c into attach/detach helper functions.
> Incidentally, these don't require the AioContext lock because
> aio_set_fd_handler() is thread-safe.
>
> It's safer to register BlockDevOps after the dataplane instance has been
> created. The BlockDevOps .drained_begin/end() callbacks depend on the
> dataplane instance, so move the blk_set_dev_ops() call after
> xen_block_dataplane_create().
>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
Thanks,
--
Anthony PERARD
- [PATCH v5 05/21] virtio-scsi: stop using aio_disable_external() during unplug, (continued)
- [PATCH v5 05/21] virtio-scsi: stop using aio_disable_external() during unplug, Stefan Hajnoczi, 2023/05/04
- [PATCH v5 06/21] util/vhost-user-server: rename refcount to in_flight counter, Stefan Hajnoczi, 2023/05/04
- [PATCH v5 07/21] block/export: wait for vhost-user-blk requests when draining, Stefan Hajnoczi, 2023/05/04
- [PATCH v5 08/21] block/export: stop using is_external in vhost-user-blk server, Stefan Hajnoczi, 2023/05/04
- [PATCH v5 09/21] hw/xen: do not use aio_set_fd_handler(is_external=true) in xen_xenstore, Stefan Hajnoczi, 2023/05/04
- [PATCH v5 10/21] block: add blk_in_drain() API, Stefan Hajnoczi, 2023/05/04
- [PATCH v5 11/21] block: drain from main loop thread in bdrv_co_yield_to_drain(), Stefan Hajnoczi, 2023/05/04
- [PATCH v5 12/21] xen-block: implement BlockDevOps->drained_begin(), Stefan Hajnoczi, 2023/05/04
- [PATCH v5 14/21] block/export: rewrite vduse-blk drain code, Stefan Hajnoczi, 2023/05/04
- [PATCH v5 16/21] block/fuse: do not set is_external=true on FUSE fd, Stefan Hajnoczi, 2023/05/04
- [PATCH v5 15/21] block/export: don't require AioContext lock around blk_exp_ref/unref(), Stefan Hajnoczi, 2023/05/04
- [PATCH v5 13/21] hw/xen: do not set is_external=true on evtchn fds, Stefan Hajnoczi, 2023/05/04
- [PATCH v5 17/21] virtio: make it possible to detach host notifier from any thread, Stefan Hajnoczi, 2023/05/04
- [PATCH v5 19/21] virtio-scsi: implement BlockDevOps->drained_begin(), Stefan Hajnoczi, 2023/05/04
- [PATCH v5 18/21] virtio-blk: implement BlockDevOps->drained_begin(), Stefan Hajnoczi, 2023/05/04
- [PATCH v5 20/21] virtio: do not set is_external=true on host notifiers, Stefan Hajnoczi, 2023/05/04