[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 13/13] aio: remove aio_disable_external() API
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [PATCH 13/13] aio: remove aio_disable_external() API |
Date: |
Tue, 4 Apr 2023 10:38:21 +0100 |
User-agent: |
Mutt/2.2.9 (2022-11-12) |
* Juan Quintela (quintela@redhat.com) wrote:
> Stefan Hajnoczi <stefanha@redhat.com> wrote:
> > All callers now pass is_external=false to aio_set_fd_handler() and
> > aio_set_event_notifier(). The aio_disable_external() API that
> > temporarily disables fd handlers that were registered is_external=true
> > is therefore dead code.
> >
> > Remove aio_disable_external(), aio_enable_external(), and the
> > is_external arguments to aio_set_fd_handler() and
> > aio_set_event_notifier().
> >
> > The entire test-fdmon-epoll test is removed because its sole purpose was
> > testing aio_disable_external().
> >
> > Parts of this patch were generated using the following coccinelle
> > (https://coccinelle.lip6.fr/) semantic patch:
> >
> > @@
> > expression ctx, fd, is_external, io_read, io_write, io_poll,
> > io_poll_ready, opaque;
> > @@
> > - aio_set_fd_handler(ctx, fd, is_external, io_read, io_write, io_poll,
> > io_poll_ready, opaque)
> > + aio_set_fd_handler(ctx, fd, io_read, io_write, io_poll, io_poll_ready,
> > opaque)
> >
> > @@
> > expression ctx, notifier, is_external, io_read, io_poll, io_poll_ready;
> > @@
> > - aio_set_event_notifier(ctx, notifier, is_external, io_read, io_poll,
> > io_poll_ready)
> > + aio_set_event_notifier(ctx, notifier, io_read, io_poll, io_poll_ready)
> >
> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
>
> [....]
>
> > diff --git a/migration/rdma.c b/migration/rdma.c
> > index df646be35e..aee41ca43e 100644
> > --- a/migration/rdma.c
> > +++ b/migration/rdma.c
> > @@ -3104,15 +3104,15 @@ static void
> > qio_channel_rdma_set_aio_fd_handler(QIOChannel *ioc,
> > {
> > QIOChannelRDMA *rioc = QIO_CHANNEL_RDMA(ioc);
> > if (io_read) {
> > - aio_set_fd_handler(ctx, rioc->rdmain->recv_comp_channel->fd,
> > - false, io_read, io_write, NULL, NULL, opaque);
> > - aio_set_fd_handler(ctx, rioc->rdmain->send_comp_channel->fd,
> > - false, io_read, io_write, NULL, NULL, opaque);
> > + aio_set_fd_handler(ctx, rioc->rdmain->recv_comp_channel->fd,
> > io_read,
> > + io_write, NULL, NULL, opaque);
> > + aio_set_fd_handler(ctx, rioc->rdmain->send_comp_channel->fd,
> > io_read,
> > + io_write, NULL, NULL, opaque);
> > } else {
> > - aio_set_fd_handler(ctx, rioc->rdmaout->recv_comp_channel->fd,
> > - false, io_read, io_write, NULL, NULL, opaque);
> > - aio_set_fd_handler(ctx, rioc->rdmaout->send_comp_channel->fd,
> > - false, io_read, io_write, NULL, NULL, opaque);
> > + aio_set_fd_handler(ctx, rioc->rdmaout->recv_comp_channel->fd,
> > io_read,
> > + io_write, NULL, NULL, opaque);
> > + aio_set_fd_handler(ctx, rioc->rdmaout->send_comp_channel->fd,
> > io_read,
> > + io_write, NULL, NULL, opaque);
> > }
> > }
>
> Reviewed-by: Juan Quintela <quintela@redhat.com>
>
> For the migration bits.
> I don't even want to know why the RDMA code uses a low level block layer API.
I don't think it's block specific.
It looks like it's because qio_channel uses aio in the case where
something QIO_CHANNEL_ERR_BLOCK and then waits for the recovery; see
4d9f675 that added it.
Dave
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
- Re: [PATCH 01/13] virtio-scsi: avoid race between unplug and transport event, (continued)
- [PATCH 08/13] hw/xen: do not use aio_set_fd_handler(is_external=true) in xen_xenstore, Stefan Hajnoczi, 2023/04/03
- [PATCH 09/13] hw/xen: do not set is_external=true on evtchn fds, Stefan Hajnoczi, 2023/04/03
- [PATCH 07/13] virtio: do not set is_external=true on host notifiers, Stefan Hajnoczi, 2023/04/03
- [PATCH 10/13] block/export: rewrite vduse-blk drain code, Stefan Hajnoczi, 2023/04/03
- [PATCH 12/13] block/fuse: do not set is_external=true on FUSE fd, Stefan Hajnoczi, 2023/04/03
- [PATCH 13/13] aio: remove aio_disable_external() API, Stefan Hajnoczi, 2023/04/03
- [PATCH 11/13] block/fuse: take AioContext lock around blk_exp_ref/unref(), Stefan Hajnoczi, 2023/04/03
- Re: [PATCH 00/13] block: remove aio_disable_external() API, Paolo Bonzini, 2023/04/04