[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 13/13] aio: remove aio_disable_external() API
* Juan Quintela (quintela@xxxxxxxxxx) wrote: > Stefan Hajnoczi <stefanha@xxxxxxxxxx> 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@xxxxxxxxxx> > > [....] > > > 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@xxxxxxxxxx> > > 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@xxxxxxxxxx / Manchester, UK
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |