[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v9 14/17] tests/qemu-iotests: enable testing with ai
From: |
Aarushi Mehta |
Subject: |
[Qemu-devel] [PATCH v9 14/17] tests/qemu-iotests: enable testing with aio options |
Date: |
Fri, 2 Aug 2019 05:10:28 +0530 |
Signed-off-by: Aarushi Mehta <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
---
tests/qemu-iotests/check | 15 ++++++++++++++-
tests/qemu-iotests/common.rc | 14 ++++++++++++++
tests/qemu-iotests/iotests.py | 9 ++++++++-
3 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/tests/qemu-iotests/check b/tests/qemu-iotests/check
index c24874ff4a..1e398923fd 100755
--- a/tests/qemu-iotests/check
+++ b/tests/qemu-iotests/check
@@ -132,6 +132,7 @@ sortme=false
expunge=true
have_test_arg=false
cachemode=false
+aiomode=false
tmp="${TEST_DIR}"/$$
rm -f $tmp.list $tmp.tmp $tmp.sed
@@ -141,6 +142,7 @@ export IMGFMT_GENERIC=true
export IMGPROTO=file
export IMGOPTS=""
export CACHEMODE="writeback"
+export AIOMODE="threads"
export QEMU_IO_OPTIONS=""
export QEMU_IO_OPTIONS_NO_FMT=""
export CACHEMODE_IS_DEFAULT=true
@@ -225,6 +227,11 @@ s/ .*//p
CACHEMODE_IS_DEFAULT=false
cachemode=false
continue
+ elif $aiomode
+ then
+ AIOMODE="$r"
+ aiomode=false
+ continue
fi
xpand=true
@@ -269,6 +276,7 @@ other options
-n show me, do not run tests
-o options -o options to pass to qemu-img create/convert
-c mode cache mode
+ -i mode AIO mode
-makecheck pretty print output for make check
testlist options
@@ -433,10 +441,13 @@ testlist options
cachemode=true
xpand=false
;;
+ -i)
+ aiomode=true
+ xpand=false
+ ;;
-T) # deprecated timestamp option
xpand=false
;;
-
-v)
verbose=true
xpand=false
@@ -515,6 +526,8 @@ done
# Set qemu-io cache mode with $CACHEMODE we have
QEMU_IO_OPTIONS="$QEMU_IO_OPTIONS --cache $CACHEMODE"
+# Set qemu-io aio mode with $AIOMODE we have
+QEMU_IO_OPTIONS="$QEMU_IO_OPTIONS --aio $AIOMODE"
QEMU_IO_OPTIONS_NO_FMT="$QEMU_IO_OPTIONS"
if [ "$IMGOPTSSYNTAX" != "true" ]; then
diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc
index 5502c3da2f..03f4a1cd7f 100644
--- a/tests/qemu-iotests/common.rc
+++ b/tests/qemu-iotests/common.rc
@@ -490,6 +490,20 @@ _default_cache_mode()
return
fi
}
+_supported_aio_modes()
+{
+ for mode; do
+ if [ "$mode" = "$AIOMODE" ]; then
+ return
+ fi
+ done
+ _notrun "not suitable for aio mode: $AIOMODE"
+}
+_default_aio_mode()
+{
+ AIOMODE="$1"
+ QEMU_IO="$QEMU_IO --aio $1"
+}
_unsupported_imgopts()
{
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index ce74177ab1..76f1ab0945 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -58,6 +58,7 @@ imgproto = os.environ.get('IMGPROTO', 'file')
test_dir = os.environ.get('TEST_DIR')
output_dir = os.environ.get('OUTPUT_DIR', '.')
cachemode = os.environ.get('CACHEMODE')
+aiomode = os.environ.get('AIOMODE')
qemu_default_machine = os.environ.get('QEMU_DEFAULT_MACHINE')
socket_scm_helper = os.environ.get('SOCKET_SCM_HELPER', 'socket_scm_helper')
@@ -457,6 +458,7 @@ class VM(qtest.QEMUQtestMachine):
options.append('file=%s' % path)
options.append('format=%s' % format)
options.append('cache=%s' % cachemode)
+ options.append('aio=%s' % aiomode)
if opts:
options.append(opts)
@@ -799,6 +801,10 @@ def verify_cache_mode(supported_cache_modes=[]):
if supported_cache_modes and (cachemode not in supported_cache_modes):
notrun('not suitable for this cache mode: %s' % cachemode)
+def verify_aio_mode(supported_aio_modes=[]):
+ if supported_aio_modes and (aiomode not in supported_aio_modes):
+ notrun('not suitable for this aio mode: %s' % aiomode)
+
def supports_quorum():
return 'quorum' in qemu_img_pipe('--help')
@@ -843,7 +849,7 @@ def skip_if_unsupported(required_formats=[],
read_only=False):
return skip_test_decorator
def main(supported_fmts=[], supported_oses=['linux'], supported_cache_modes=[],
- unsupported_fmts=[]):
+ supported_aio_modes=[], unsupported_fmts=[]):
'''Run tests'''
global debug
@@ -861,6 +867,7 @@ def main(supported_fmts=[], supported_oses=['linux'],
supported_cache_modes=[],
verify_image_format(supported_fmts, unsupported_fmts)
verify_platform(supported_oses)
verify_cache_mode(supported_cache_modes)
+ verify_aio_mode(supported_aio_modes)
if debug:
output = sys.stdout
--
2.21.0
- Re: [Qemu-devel] [PATCH v9 07/17] blockdev: adds bdrv_parse_aio to use io_uring, (continued)
[Qemu-devel] [PATCH v9 08/17] block/file-posix.c: extend to use io_uring, Aarushi Mehta, 2019/08/01
[Qemu-devel] [PATCH v9 09/17] block: add trace events for io_uring, Aarushi Mehta, 2019/08/01
[Qemu-devel] [PATCH v9 10/17] block/io_uring: adds userspace completion polling, Aarushi Mehta, 2019/08/01
[Qemu-devel] [PATCH v9 11/17] qemu-io: adds option to use aio engine, Aarushi Mehta, 2019/08/01
[Qemu-devel] [PATCH v9 12/17] qemu-img: adds option to use aio engine for benchmarking, Aarushi Mehta, 2019/08/01
[Qemu-devel] [PATCH v9 13/17] qemu-nbd: adds option for aio engines, Aarushi Mehta, 2019/08/01
[Qemu-devel] [PATCH v9 14/17] tests/qemu-iotests: enable testing with aio options,
Aarushi Mehta <=
[Qemu-devel] [PATCH v9 15/17] tests/qemu-iotests: use AIOMODE with various tests, Aarushi Mehta, 2019/08/01
[Qemu-devel] [PATCH v9 16/17] block/io_uring: adds fd registration, Aarushi Mehta, 2019/08/01
[Qemu-devel] [PATCH v9 17/17] block/io_uring: enable kernel submission polling, Aarushi Mehta, 2019/08/01