aboutsummaryrefslogtreecommitdiff
path: root/async.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2015-02-20 17:26:52 +0100
committerKevin Wolf <kwolf@redhat.com>2015-04-28 15:36:08 +0200
commita0710f7995f914e3044e5899bd8ff6c43c62f916 (patch)
treea6a63bb73444688e7994a4a40eef3a38607f9251 /async.c
parent49110174f8835ec3d5ca7fc076ee1f51c18564fe (diff)
downloadqemu-arm-a0710f7995f914e3044e5899bd8ff6c43c62f916.tar.gz
iothread: release iothread around aio_poll
This is the first step towards having fine-grained critical sections in dataplane threads, which resolves lock ordering problems between address_space_* functions (which need the BQL when doing MMIO, even after we complete RCU-based dispatch) and the AioContext. Because AioContext does not use contention callbacks anymore, the unit test has to be changed. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 1424449612-18215-4-git-send-email-pbonzini@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'async.c')
-rw-r--r--async.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/async.c b/async.c
index 77d080d6f5..46d9e639d7 100644
--- a/async.c
+++ b/async.c
@@ -280,12 +280,6 @@ static void aio_timerlist_notify(void *opaque)
aio_notify(opaque);
}
-static void aio_rfifolock_cb(void *opaque)
-{
- /* Kick owner thread in case they are blocked in aio_poll() */
- aio_notify(opaque);
-}
-
AioContext *aio_context_new(Error **errp)
{
int ret;
@@ -303,7 +297,7 @@ AioContext *aio_context_new(Error **errp)
event_notifier_test_and_clear);
ctx->thread_pool = NULL;
qemu_mutex_init(&ctx->bh_lock);
- rfifolock_init(&ctx->lock, aio_rfifolock_cb, ctx);
+ rfifolock_init(&ctx->lock, NULL, NULL);
timerlistgroup_init(&ctx->tlg, aio_timerlist_notify, ctx);
return ctx;