From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
Peter Maydell <peter.maydell@linaro.org>,
qemu-block@nongnu.org, Julia Suvorova <jusual@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
Max Reitz <mreitz@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>, Fam Zheng <fam@euphon.net>,
Aarushi Mehta <mehta.aaru20@gmail.com>,
Stefano Garzarella <sgarzare@redhat.com>
Subject: [PULL 17/18] tests/qemu-iotests: enable testing with aio options
Date: Thu, 30 Jan 2020 21:31:13 +0000 [thread overview]
Message-ID: <20200130213114.325157-18-stefanha@redhat.com> (raw)
In-Reply-To: <20200130213114.325157-1-stefanha@redhat.com>
From: Aarushi Mehta <mehta.aaru20@gmail.com>
Signed-off-by: Aarushi Mehta <mehta.aaru20@gmail.com>
Acked-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20200120141858.587874-15-stefanha@redhat.com
Message-Id: <20200120141858.587874-15-stefanha@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
tests/qemu-iotests/check | 15 ++++++++++++++-
tests/qemu-iotests/common.rc | 14 ++++++++++++++
tests/qemu-iotests/iotests.py | 12 ++++++++++--
3 files changed, 38 insertions(+), 3 deletions(-)
diff --git a/tests/qemu-iotests/check b/tests/qemu-iotests/check
index 2890785a10..39ed5bc1be 100755
--- a/tests/qemu-iotests/check
+++ b/tests/qemu-iotests/check
@@ -137,6 +137,7 @@ sortme=false
expunge=true
have_test_arg=false
cachemode=false
+aiomode=false
tmp="${TEST_DIR}"/$$
rm -f $tmp.list $tmp.tmp $tmp.sed
@@ -146,6 +147,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
@@ -230,6 +232,11 @@ s/ .*//p
CACHEMODE_IS_DEFAULT=false
cachemode=false
continue
+ elif $aiomode
+ then
+ AIOMODE="$r"
+ aiomode=false
+ continue
fi
xpand=true
@@ -274,6 +281,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
@@ -438,10 +446,13 @@ testlist options
cachemode=true
xpand=false
;;
+ -i)
+ aiomode=true
+ xpand=false
+ ;;
-T) # deprecated timestamp option
xpand=false
;;
-
-v)
verbose=true
xpand=false
@@ -520,6 +531,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 d088392ab6..9ccde32634 100644
--- a/tests/qemu-iotests/common.rc
+++ b/tests/qemu-iotests/common.rc
@@ -645,6 +645,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 0b62c42851..89aa2df2f3 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -65,6 +65,7 @@ test_dir = os.environ.get('TEST_DIR')
sock_dir = os.environ.get('SOCK_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')
@@ -495,6 +496,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)
@@ -937,6 +939,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')
@@ -1023,8 +1029,9 @@ def execute_unittest(output, verbosity, debug):
def execute_test(test_function=None,
supported_fmts=[], supported_oses=['linux'],
- supported_cache_modes=[], unsupported_fmts=[],
- supported_protocols=[], unsupported_protocols=[]):
+ supported_cache_modes=[], supported_aio_modes={},
+ unsupported_fmts=[], supported_protocols=[],
+ unsupported_protocols=[]):
"""Run either unittest or script-style tests."""
# We are using TEST_DIR and QEMU_DEFAULT_MACHINE as proxies to
@@ -1041,6 +1048,7 @@ def execute_test(test_function=None,
verify_protocol(supported_protocols, unsupported_protocols)
verify_platform(supported_oses)
verify_cache_mode(supported_cache_modes)
+ verify_aio_mode(supported_aio_modes)
if debug:
output = sys.stdout
--
2.24.1
next prev parent reply other threads:[~2020-01-30 21:45 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-30 21:30 [PULL 00/18] Block patches Stefan Hajnoczi
2020-01-30 21:30 ` [PULL 01/18] block: eliminate BDRV_REQ_NO_SERIALISING Stefan Hajnoczi
2020-01-30 21:30 ` [PULL 02/18] block/io: wait for serialising requests when a request becomes serialising Stefan Hajnoczi
2020-01-30 21:30 ` [PULL 03/18] block/io: take bs->reqs_lock in bdrv_mark_request_serialising Stefan Hajnoczi
2020-01-30 21:31 ` [PULL 04/18] configure: permit use of io_uring Stefan Hajnoczi
2020-01-30 21:31 ` [PULL 05/18] qapi/block-core: add option for io_uring Stefan Hajnoczi
2020-01-30 21:31 ` [PULL 06/18] block/block: add BDRV flag " Stefan Hajnoczi
2020-01-30 21:31 ` [PULL 07/18] block/io_uring: implements interfaces " Stefan Hajnoczi
2020-01-30 21:31 ` [PULL 08/18] stubs: add stubs for io_uring interface Stefan Hajnoczi
2020-01-30 21:31 ` [PULL 09/18] util/async: add aio interfaces for io_uring Stefan Hajnoczi
2020-01-30 21:31 ` [PULL 10/18] blockdev: adds bdrv_parse_aio to use io_uring Stefan Hajnoczi
2020-01-30 21:31 ` [PULL 11/18] block/file-posix.c: extend " Stefan Hajnoczi
2020-01-30 21:31 ` [PULL 12/18] block: add trace events for io_uring Stefan Hajnoczi
2020-01-30 21:31 ` [PULL 13/18] block/io_uring: adds userspace completion polling Stefan Hajnoczi
2020-01-30 21:31 ` [PULL 14/18] qemu-io: adds option to use aio engine Stefan Hajnoczi
2020-01-30 21:31 ` [PULL 15/18] qemu-img: adds option to use aio engine for benchmarking Stefan Hajnoczi
2020-02-03 10:55 ` Peter Maydell
2020-02-05 15:55 ` Julia Suvorova
2020-01-30 21:31 ` [PULL 16/18] qemu-nbd: adds option for aio engines Stefan Hajnoczi
2020-01-30 21:31 ` Stefan Hajnoczi [this message]
2020-01-30 21:31 ` [PULL 18/18] tests/qemu-iotests: use AIOMODE with various tests Stefan Hajnoczi
2020-01-31 11:39 ` [PULL 00/18] Block patches Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200130213114.325157-18-stefanha@redhat.com \
--to=stefanha@redhat.com \
--cc=armbru@redhat.com \
--cc=fam@euphon.net \
--cc=jusual@redhat.com \
--cc=kwolf@redhat.com \
--cc=mehta.aaru20@gmail.com \
--cc=mreitz@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=sgarzare@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).