summaryrefslogtreecommitdiffstats
path: root/include/block
diff options
context:
space:
mode:
authorStefan Hajnoczi2014-07-07 15:15:52 +0200
committerKevin Wolf2014-08-15 15:07:14 +0200
commitac2662a913ee5854b1269256adbdc14e57ba480a (patch)
tree58946f4d817de43cbc5711b6c3b0095ef4f7dade /include/block
parentqemu-iotests: add support for Archipelago protocol (diff)
downloadqemu-ac2662a913ee5854b1269256adbdc14e57ba480a.tar.gz
qemu-ac2662a913ee5854b1269256adbdc14e57ba480a.tar.xz
qemu-ac2662a913ee5854b1269256adbdc14e57ba480a.zip
coroutine: make pool size dynamic
Allow coroutine users to adjust the pool size. For example, if the guest has multiple emulated disk drives we should keep around more coroutines. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'include/block')
-rw-r--r--include/block/coroutine.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/block/coroutine.h b/include/block/coroutine.h
index b408f96b82..b9b7f488c9 100644
--- a/include/block/coroutine.h
+++ b/include/block/coroutine.h
@@ -223,4 +223,15 @@ void coroutine_fn co_aio_sleep_ns(AioContext *ctx, QEMUClockType type,
* Note that this function clobbers the handlers for the file descriptor.
*/
void coroutine_fn yield_until_fd_readable(int fd);
+
+/**
+ * Add or subtract from the coroutine pool size
+ *
+ * The coroutine implementation keeps a pool of coroutines to be reused by
+ * qemu_coroutine_create(). This makes coroutine creation cheap. Heavy
+ * coroutine users should call this to reserve pool space. Call it again with
+ * a negative number to release pool space.
+ */
+void qemu_coroutine_adjust_pool_size(int n);
+
#endif /* QEMU_COROUTINE_H */