aboutsummaryrefslogtreecommitdiff
path: root/util/async.c
diff options
context:
space:
mode:
authorStefano Garzarella <sgarzare@redhat.com>2021-07-21 11:42:10 +0200
committerStefan Hajnoczi <stefanha@redhat.com>2021-07-21 13:47:50 +0100
commit1793ad0247cad35db1ebbc04fbea0446c30a27ca (patch)
tree3b26eff84f99fa68fcef95a40b52a3aa48ce9f72 /util/async.c
parent0445409d7497bededa1047f0d8298b0d4bb3b1a3 (diff)
downloadqemu-1793ad0247cad35db1ebbc04fbea0446c30a27ca.zip
qemu-1793ad0247cad35db1ebbc04fbea0446c30a27ca.tar.gz
qemu-1793ad0247cad35db1ebbc04fbea0446c30a27ca.tar.bz2
iothread: add aio-max-batch parameter
The `aio-max-batch` parameter will be propagated to AIO engines and it will be used to control the maximum number of queued requests. When there are in queue a number of requests equal to `aio-max-batch`, the engine invokes the system call to forward the requests to the kernel. This parameter allows us to control the maximum batch size to reduce the latency that requests might accumulate while queued in the AIO engine queue. If `aio-max-batch` is equal to 0 (default value), the AIO engine will use its default maximum batch size value. Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> Message-id: 20210721094211.69853-3-sgarzare@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'util/async.c')
-rw-r--r--util/async.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/util/async.c b/util/async.c
index 9a41591..6f6717a 100644
--- a/util/async.c
+++ b/util/async.c
@@ -554,6 +554,8 @@ AioContext *aio_context_new(Error **errp)
ctx->poll_grow = 0;
ctx->poll_shrink = 0;
+ ctx->aio_max_batch = 0;
+
return ctx;
fail:
g_source_destroy(&ctx->source);