From 87f68d318222563822b5c6b28192215fc4b4e441 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Mon, 7 Jul 2014 15:18:02 +0200 Subject: [PATCH] block: drop aio functions that operate on the main AioContext The main AioContext should be accessed explicitly via qemu_get_aio_context(). Most of the time, using it is not the right thing to do. Signed-off-by: Paolo Bonzini Signed-off-by: Kevin Wolf --- aio-posix.c | 4 ++-- aio-win32.c | 6 +++--- include/block/aio.h | 17 ++--------------- include/block/blockjob.h | 4 ++-- include/block/coroutine.h | 2 +- main-loop.c | 21 --------------------- tests/test-thread-pool.c | 4 ++-- 7 files changed, 12 insertions(+), 46 deletions(-) diff --git a/aio-posix.c b/aio-posix.c index f921d4f538..44c4df3f3d 100644 --- a/aio-posix.c +++ b/aio-posix.c @@ -125,7 +125,7 @@ static bool aio_dispatch(AioContext *ctx) bool progress = false; /* - * We have to walk very carefully in case qemu_aio_set_fd_handler is + * We have to walk very carefully in case aio_set_fd_handler is * called while we're walking. */ node = QLIST_FIRST(&ctx->aio_handlers); @@ -183,7 +183,7 @@ bool aio_poll(AioContext *ctx, bool blocking) /* * If there are callbacks left that have been queued, we need to call them. * Do not call select in this case, because it is possible that the caller - * does not need a complete flush (as is the case for qemu_aio_wait loops). + * does not need a complete flush (as is the case for aio_poll loops). */ if (aio_bh_poll(ctx)) { blocking = false; diff --git a/aio-win32.c b/aio-win32.c index 23f4e5ba19..c12f61e97d 100644 --- a/aio-win32.c +++ b/aio-win32.c @@ -102,7 +102,7 @@ bool aio_poll(AioContext *ctx, bool blocking) /* * If there are callbacks left that have been queued, we need to call then. * Do not call select in this case, because it is possible that the caller - * does not need a complete flush (as is the case for qemu_aio_wait loops). + * does not need a complete flush (as is the case for aio_poll loops). */ if (aio_bh_poll(ctx)) { blocking = false; @@ -115,7 +115,7 @@ bool aio_poll(AioContext *ctx, bool blocking) /* * Then dispatch any pending callbacks from the GSource. * - * We have to walk very carefully in case qemu_aio_set_fd_handler is + * We have to walk very carefully in case aio_set_fd_handler is * called while we're walking. */ node = QLIST_FIRST(&ctx->aio_handlers); @@ -177,7 +177,7 @@ bool aio_poll(AioContext *ctx, bool blocking) blocking = false; /* we have to walk very carefully in case - * qemu_aio_set_fd_handler is called while we're walking */ + * aio_set_fd_handler is called while we're walking */ node = QLIST_FIRST(&ctx->aio_handlers); while (node) { AioHandler *tmp; diff --git a/include/block/aio.h b/include/block/aio.h index a92511bd3b..d81250cf2b 100644 --- a/include/block/aio.h +++ b/include/block/aio.h @@ -220,7 +220,7 @@ bool aio_poll(AioContext *ctx, bool blocking); #ifdef CONFIG_POSIX /* Register a file descriptor and associated callbacks. Behaves very similarly * to qemu_set_fd_handler2. Unlike qemu_set_fd_handler2, these callbacks will - * be invoked when using qemu_aio_wait(). + * be invoked when using aio_poll(). * * Code that invokes AIO completion functions should rely on this function * instead of qemu_set_fd_handler[2]. @@ -234,7 +234,7 @@ void aio_set_fd_handler(AioContext *ctx, /* Register an event notifier and associated callbacks. Behaves very similarly * to event_notifier_set_handler. Unlike event_notifier_set_handler, these callbacks - * will be invoked when using qemu_aio_wait(). + * will be invoked when using aio_poll(). * * Code that invokes AIO completion functions should rely on this function * instead of event_notifier_set_handler. @@ -251,19 +251,6 @@ GSource *aio_get_g_source(AioContext *ctx); /* Return the ThreadPool bound to this AioContext */ struct ThreadPool *aio_get_thread_pool(AioContext *ctx); -/* Functions to operate on the main QEMU AioContext. */ - -bool qemu_aio_wait(void); -void qemu_aio_set_event_notifier(EventNotifier *notifier, - EventNotifierHandler *io_read); - -#ifdef CONFIG_POSIX -void qemu_aio_set_fd_handler(int fd, - IOHandler *io_read, - IOHandler *io_write, - void *opaque); -#endif - /** * aio_timer_new: * @ctx: the aio context diff --git a/include/block/blockjob.h b/include/block/blockjob.h index f3cf63f9f5..60aa835ec0 100644 --- a/include/block/blockjob.h +++ b/include/block/blockjob.h @@ -74,7 +74,7 @@ struct BlockJob { * Set to true if the job should cancel itself. The flag must * always be tested just before toggling the busy flag from false * to true. After a job has been cancelled, it should only yield - * if #qemu_aio_wait will ("sooner or later") reenter the coroutine. + * if #aio_poll will ("sooner or later") reenter the coroutine. */ bool cancelled; @@ -87,7 +87,7 @@ struct BlockJob { /** * Set to false by the job while it is in a quiescent state, where * no I/O is pending and the job has yielded on any condition - * that is not detected by #qemu_aio_wait, such as a timer. + * that is not detected by #aio_poll, such as a timer. */ bool busy; diff --git a/include/block/coroutine.h b/include/block/coroutine.h index a1797ae3d8..b408f96b82 100644 --- a/include/block/coroutine.h +++ b/include/block/coroutine.h @@ -212,7 +212,7 @@ void coroutine_fn co_sleep_ns(QEMUClockType type, int64_t ns); * Yield the coroutine for a given duration * * Behaves similarly to co_sleep_ns(), but the sleeping coroutine will be - * resumed when using qemu_aio_wait(). + * resumed when using aio_poll(). */ void coroutine_fn co_aio_sleep_ns(AioContext *ctx, QEMUClockType type, int64_t ns); diff --git a/main-loop.c b/main-loop.c index 8a854938e7..3cc79f82f9 100644 --- a/main-loop.c +++ b/main-loop.c @@ -498,24 +498,3 @@ QEMUBH *qemu_bh_new(QEMUBHFunc *cb, void *opaque) { return aio_bh_new(qemu_aio_context, cb, opaque); } - -bool qemu_aio_wait(void) -{ - return aio_poll(qemu_aio_context, true); -} - -#ifdef CONFIG_POSIX -void qemu_aio_set_fd_handler(int fd, - IOHandler *io_read, - IOHandler *io_write, - void *opaque) -{ - aio_set_fd_handler(qemu_aio_context, fd, io_read, io_write, opaque); -} -#endif - -void qemu_aio_set_event_notifier(EventNotifier *notifier, - EventNotifierHandler *io_read) -{ - aio_set_event_notifier(qemu_aio_context, notifier, io_read); -} diff --git a/tests/test-thread-pool.c b/tests/test-thread-pool.c index aa156bcd32..f40b7fc170 100644 --- a/tests/test-thread-pool.c +++ b/tests/test-thread-pool.c @@ -83,7 +83,7 @@ static void co_test_cb(void *opaque) data->ret = 0; active--; - /* The test continues in test_submit_co, after qemu_aio_wait_all... */ + /* The test continues in test_submit_co, after aio_poll... */ } static void test_submit_co(void) @@ -98,7 +98,7 @@ static void test_submit_co(void) g_assert_cmpint(active, ==, 1); g_assert_cmpint(data.ret, ==, -EINPROGRESS); - /* qemu_aio_wait_all will execute the rest of the coroutine. */ + /* aio_poll will execute the rest of the coroutine. */ while (data.ret == -EINPROGRESS) { aio_poll(ctx, true); -- 2.11.0