[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 01/23] coroutine: simplify co_aio_sleep_ns() proto
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PULL v2 01/23] coroutine: simplify co_aio_sleep_ns() prototype |
Date: |
Tue, 19 Dec 2017 15:11:22 +0000 |
The AioContext pointer argument to co_aio_sleep_ns() is only used for
the sleep timer. It does not affect where the caller coroutine is
resumed.
Due to changes to coroutine and AIO APIs it is now possible to drop the
AioContext pointer argument. This is safe to do since no caller has
specific requirements for which AioContext the timer must run in.
This patch drops the AioContext pointer argument and renames the
function to simplify the API.
Reported-by: Paolo Bonzini <address@hidden>
Reported-by: Eric Blake <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
include/qemu/coroutine.h | 6 +-----
block/null.c | 3 +--
block/sheepdog.c | 3 +--
util/qemu-coroutine-sleep.c | 4 ++--
4 files changed, 5 insertions(+), 11 deletions(-)
diff --git a/include/qemu/coroutine.h b/include/qemu/coroutine.h
index 9aff9a735e..ce2eb73670 100644
--- a/include/qemu/coroutine.h
+++ b/include/qemu/coroutine.h
@@ -261,12 +261,8 @@ void qemu_co_rwlock_unlock(CoRwlock *lock);
/**
* Yield the coroutine for a given duration
- *
- * Behaves similarly to co_sleep_ns(), but the sleeping coroutine will be
- * resumed when using aio_poll().
*/
-void coroutine_fn co_aio_sleep_ns(AioContext *ctx, QEMUClockType type,
- int64_t ns);
+void coroutine_fn qemu_co_sleep_ns(QEMUClockType type, int64_t ns);
/**
* Yield until a file descriptor becomes readable
diff --git a/block/null.c b/block/null.c
index dd9c13f9ba..0cdabaa440 100644
--- a/block/null.c
+++ b/block/null.c
@@ -110,8 +110,7 @@ static coroutine_fn int null_co_common(BlockDriverState *bs)
BDRVNullState *s = bs->opaque;
if (s->latency_ns) {
- co_aio_sleep_ns(bdrv_get_aio_context(bs), QEMU_CLOCK_REALTIME,
- s->latency_ns);
+ qemu_co_sleep_ns(QEMU_CLOCK_REALTIME, s->latency_ns);
}
return 0;
}
diff --git a/block/sheepdog.c b/block/sheepdog.c
index 696a71442a..a1edb992ff 100644
--- a/block/sheepdog.c
+++ b/block/sheepdog.c
@@ -776,8 +776,7 @@ static coroutine_fn void reconnect_to_sdog(void *opaque)
if (s->fd < 0) {
DPRINTF("Wait for connection to be established\n");
error_report_err(local_err);
- co_aio_sleep_ns(bdrv_get_aio_context(s->bs), QEMU_CLOCK_REALTIME,
- 1000000000ULL);
+ qemu_co_sleep_ns(QEMU_CLOCK_REALTIME, 1000000000ULL);
}
};
diff --git a/util/qemu-coroutine-sleep.c b/util/qemu-coroutine-sleep.c
index 254349cdbb..afb678fbe5 100644
--- a/util/qemu-coroutine-sleep.c
+++ b/util/qemu-coroutine-sleep.c
@@ -31,9 +31,9 @@ static void co_sleep_cb(void *opaque)
aio_co_wake(sleep_cb->co);
}
-void coroutine_fn co_aio_sleep_ns(AioContext *ctx, QEMUClockType type,
- int64_t ns)
+void coroutine_fn qemu_co_sleep_ns(QEMUClockType type, int64_t ns)
{
+ AioContext *ctx = qemu_get_current_aio_context();
CoSleepCB sleep_cb = {
.co = qemu_coroutine_self(),
};
--
2.14.3
- [Qemu-devel] [PULL v2 00/23] Block patches, Stefan Hajnoczi, 2017/12/19
- [Qemu-devel] [PULL v2 01/23] coroutine: simplify co_aio_sleep_ns() prototype,
Stefan Hajnoczi <=
- [Qemu-devel] [PULL v2 02/23] hw/block/nvme: Convert to realize, Stefan Hajnoczi, 2017/12/19
- [Qemu-devel] [PULL v2 03/23] hw/block: Fix the return type, Stefan Hajnoczi, 2017/12/19
- [Qemu-devel] [PULL v2 04/23] hw/block: Use errp directly rather than local_err, Stefan Hajnoczi, 2017/12/19
- [Qemu-devel] [PULL v2 05/23] dev-storage: Fix the unusual function name, Stefan Hajnoczi, 2017/12/19
- [Qemu-devel] [PULL v2 06/23] qdev: drop unused #include "sysemu/iothread.h", Stefan Hajnoczi, 2017/12/19
- [Qemu-devel] [PULL v2 07/23] blockdev: hold AioContext for bdrv_unref() in external_snapshot_clean(), Stefan Hajnoczi, 2017/12/19
- [Qemu-devel] [PULL v2 08/23] block: don't keep AioContext acquired after external_snapshot_prepare(), Stefan Hajnoczi, 2017/12/19
- [Qemu-devel] [PULL v2 10/23] block: don't keep AioContext acquired after blockdev_backup_prepare(), Stefan Hajnoczi, 2017/12/19
- [Qemu-devel] [PULL v2 11/23] block: don't keep AioContext acquired after internal_snapshot_prepare(), Stefan Hajnoczi, 2017/12/19
- [Qemu-devel] [PULL v2 09/23] block: don't keep AioContext acquired after drive_backup_prepare(), Stefan Hajnoczi, 2017/12/19