[PATCH] linux-aio: increasing MAX_EVENTS to a larger hardcoded value

Wangyong posted 1 patch 4 years, 3 months ago
Test asan failed
Test checkpatch failed
Test FreeBSD failed
Test docker-mingw@fedora failed
Test docker-clang@ubuntu failed
Test docker-quick@centos7 failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/faa5781afd354a96a0be152b288f636f@h3c.com
Maintainers: Max Reitz <mreitz@redhat.com>, Kevin Wolf <kwolf@redhat.com>
block/linux-aio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] linux-aio: increasing MAX_EVENTS to a larger hardcoded value
Posted by Wangyong 4 years, 3 months ago
Since commit 6040aedddb5f474a9c2304b6a432a652d82b3d3c "virtio-blk:
make queue size configurable",if the user set the queue size to
more than 128 ,it will not take effect. That's because linux aio's
maximum outstanding requests at a time is always less than or equal
to 128.

This patch simply increase MAX_EVENTS to a larger hardcoded value of
1024 as a shortterm fix.

Signed-off-by: wangyong <wang.yongD@h3c.com>
---
 block/linux-aio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/linux-aio.c b/block/linux-aio.c
index c7eca9a256..91204a25a2 100644
--- a/block/linux-aio.c
+++ b/block/linux-aio.c
@@ -26,7 +26,7 @@
  *      than this we will get EAGAIN from io_submit which is communicated to
  *      the guest as an I/O error.
  */
-#define MAX_EVENTS 128
+#define MAX_EVENTS 1024

 struct qemu_laiocb {
     Coroutine *co;
--
2.12.1.windows.1

Re: [PATCH] linux-aio: increasing MAX_EVENTS to a larger hardcoded value
Posted by Stefan Hajnoczi 4 years, 3 months ago
On Tue, Jan 07, 2020 at 06:01:01AM +0000, Wangyong wrote:
> Since commit 6040aedddb5f474a9c2304b6a432a652d82b3d3c "virtio-blk:
> make queue size configurable",if the user set the queue size to
> more than 128 ,it will not take effect. That's because linux aio's
> maximum outstanding requests at a time is always less than or equal
> to 128.
> 
> This patch simply increase MAX_EVENTS to a larger hardcoded value of
> 1024 as a shortterm fix.
> 
> Signed-off-by: wangyong <wang.yongD@h3c.com>
> ---
>  block/linux-aio.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

We discussed that long-terms solutions would take into account the queue
size of the emulated storage controllers associated with this
AioContext, but this is a first step that will improve performance.

Thanks, applied to my block tree:
https://github.com/stefanha/qemu/commits/block

Stefan