From 674132232f94c1db8015ed780ba84f49fb0fd2bc Mon Sep 17 00:00:00 2001
From: Pavel Butsykin <pbutsykin@virtuozzo.com>
Date: Thu, 15 Jun 2017 15:42:26 +0300
Subject: [PATCH] qemu-iotests: add -iothread option
Signed-off-by: Pavel Butsykin <pbutsykin@virtuozzo.com>
---
tests/qemu-iotests/085 | 9 ++++++++-
tests/qemu-iotests/common | 7 +++++++
tests/qemu-iotests/common.qemu | 9 +++++++--
3 files changed, 22 insertions(+), 3 deletions(-)
@@ -131,7 +131,14 @@ echo === Running QEMU ===
echo
qemu_comm_method="qmp"
-_launch_qemu -drive file="${TEST_IMG}.1",if=virtio -drive file="${TEST_IMG}.2",if=virtio
+if [ "${IOTHREAD_QEMU}" = "y" ]; then
+ _launch_qemu -drive file="${TEST_IMG}.1",if=none,id=virtio0 \
+ -device virtio-blk-pci,iothread=iothread1,drive=virtio0 \
+ -drive file="${TEST_IMG}.2",if=none,id=virtio1 \
+ -device virtio-blk-pci,iothread=iothread1,drive=virtio1
+else
+ _launch_qemu -drive file="${TEST_IMG}.1",if=virtio -drive file="${TEST_IMG}.2",if=virtio
+fi
h=$QEMU_HANDLE
echo
@@ -53,6 +53,7 @@ export QEMU_IO_OPTIONS=""
export CACHEMODE_IS_DEFAULT=true
export QEMU_OPTIONS="-nodefaults -machine accel=qtest"
export VALGRIND_QEMU=
+export IOTHREAD_QEMU=
export IMGKEYSECRET=
export IMGOPTSSYNTAX=false
@@ -165,6 +166,7 @@ image protocol options
other options
-xdiff graphical mode diff
-nocache use O_DIRECT on backing file
+ -iothread enable iothread
-misalign misalign memory allocations
-n show me, do not run tests
-o options -o options to pass to qemu-img create/convert
@@ -297,6 +299,11 @@ testlist options
xpand=false
;;
+ -iothread)
+ IOTHREAD_QEMU='y'
+ xpand=false
+ ;;
+
-g) # -g group ... pick from group file
group=true
xpand=false
@@ -139,6 +139,7 @@ function _launch_qemu()
local comm=
local fifo_out=
local fifo_in=
+ local iothread=
if (shopt -s nocasematch; [[ "${qemu_comm_method}" == "monitor" ]])
then
@@ -148,6 +149,10 @@ function _launch_qemu()
comm="-monitor none -qmp stdio"
fi
+ if [ "${IOTHREAD_QEMU}" = "y" ]; then
+ iothread="--enable-kvm -object iothread,id=iothread1"
+ fi
+
fifo_out=${QEMU_FIFO_OUT}_${_QEMU_HANDLE}
fifo_in=${QEMU_FIFO_IN}_${_QEMU_HANDLE}
mkfifo "${fifo_out}"
@@ -155,12 +160,12 @@ function _launch_qemu()
if [ -z "$keep_stderr" ]; then
QEMU_NEED_PID='y'\
- ${QEMU} -nographic -serial none ${comm} "${@}" >"${fifo_out}" \
+ ${QEMU} ${iothread} -nographic -serial none ${comm} "${@}" >"${fifo_out}" \
2>&1 \
<"${fifo_in}" &
elif [ "$keep_stderr" = "y" ]; then
QEMU_NEED_PID='y'\
- ${QEMU} -nographic -serial none ${comm} "${@}" >"${fifo_out}" \
+ ${QEMU} ${iothread} -nographic -serial none ${comm} "${@}" >"${fifo_out}" \
<"${fifo_in}" &
else
exit 1
--
2.13.0