1523562e21
- kvm-migration-Do-not-re-read-the-clock-on-pre_save-in-ca.patch [bz#1747836] - kvm-ehci-fix-queue-dev-null-ptr-dereference.patch [bz#1746790] - kvm-spapr-Use-SHUTDOWN_CAUSE_SUBSYSTEM_RESET-for-CAS-reb.patch [bz#1743477] - kvm-file-posix-Handle-undetectable-alignment.patch [bz#1749134] - kvm-block-posix-Always-allocate-the-first-block.patch [bz#1749134] - kvm-iotests-Test-allocate_first_block-with-O_DIRECT.patch [bz#1749134] - Resolves: bz#1743477 (Since bd94bc06479a "spapr: change default interrupt mode to 'dual'", QEMU resets the machine to select the appropriate interrupt controller. And -no-reboot prevents that.) - Resolves: bz#1746790 (qemu core dump while migrate from RHEL7.6 to RHEL8.1) - Resolves: bz#1747836 (Call traces after guest migration due to incorrect handling of the timebase) - Resolves: bz#1749134 (I/O error when virtio-blk disk is backed by a raw image on 4k disk)
110 lines
3.5 KiB
Diff
110 lines
3.5 KiB
Diff
From b261b31812a3e89a9104fb33bb2339b1742ac494 Mon Sep 17 00:00:00 2001
|
|
From: Max Reitz <mreitz@redhat.com>
|
|
Date: Mon, 9 Sep 2019 07:38:22 +0100
|
|
Subject: [PATCH 6/6] iotests: Test allocate_first_block() with O_DIRECT
|
|
|
|
RH-Author: Max Reitz <mreitz@redhat.com>
|
|
Message-id: <20190909073822.26191-4-mreitz@redhat.com>
|
|
Patchwork-id: 90334
|
|
O-Subject: [RHEL-AV-8.1.0 qemu-kvm PATCH 3/3] iotests: Test allocate_first_block() with O_DIRECT
|
|
Bugzilla: 1749134
|
|
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
|
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
|
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
|
|
|
From: Nir Soffer <nirsof@gmail.com>
|
|
|
|
Using block_resize we can test allocate_first_block() with file
|
|
descriptor opened with O_DIRECT, ensuring that it works for any size
|
|
larger than 4096 bytes.
|
|
|
|
Testing smaller sizes is tricky as the result depends on the filesystem
|
|
used for testing. For example on NFS any size will work since O_DIRECT
|
|
does not require any alignment.
|
|
|
|
Signed-off-by: Nir Soffer <nsoffer@redhat.com>
|
|
Reviewed-by: Max Reitz <mreitz@redhat.com>
|
|
Message-id: 20190827010528.8818-3-nsoffer@redhat.com
|
|
Signed-off-by: Max Reitz <mreitz@redhat.com>
|
|
(cherry picked from commit 7e3dc2ba9a11862d4e1a08325b9165f27a1b1e7c)
|
|
Signed-off-by: Max Reitz <mreitz@redhat.com>
|
|
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
|
---
|
|
tests/qemu-iotests/175 | 28 ++++++++++++++++++++++++++++
|
|
tests/qemu-iotests/175.out | 8 ++++++++
|
|
2 files changed, 36 insertions(+)
|
|
|
|
diff --git a/tests/qemu-iotests/175 b/tests/qemu-iotests/175
|
|
index 7ba28b3..55db280 100755
|
|
--- a/tests/qemu-iotests/175
|
|
+++ b/tests/qemu-iotests/175
|
|
@@ -49,6 +49,23 @@ _filter_blocks()
|
|
-e "s/blocks=$((extra_blocks + img_size / 512))\\(\$\\|[^0-9]\\)/max allocation/"
|
|
}
|
|
|
|
+# Resize image using block_resize.
|
|
+# Parameter 1: image path
|
|
+# Parameter 2: new size
|
|
+_block_resize()
|
|
+{
|
|
+ local path=$1
|
|
+ local size=$2
|
|
+
|
|
+ $QEMU -qmp stdio -nographic -nodefaults \
|
|
+ -blockdev file,node-name=file,filename=$path,cache.direct=on \
|
|
+ <<EOF
|
|
+{'execute': 'qmp_capabilities'}
|
|
+{'execute': 'block_resize', 'arguments': {'node-name': 'file', 'size': $size}}
|
|
+{'execute': 'quit'}
|
|
+EOF
|
|
+}
|
|
+
|
|
# get standard environment, filters and checks
|
|
. ./common.rc
|
|
. ./common.filter
|
|
@@ -57,6 +74,9 @@ _supported_fmt raw
|
|
_supported_proto file
|
|
_supported_os Linux
|
|
|
|
+_default_cache_mode none
|
|
+_supported_cache_modes none directsync
|
|
+
|
|
size=$((1 * 1024 * 1024))
|
|
|
|
touch "$TEST_DIR/empty"
|
|
@@ -79,6 +99,14 @@ for mode in off full falloc; do
|
|
stat -c "size=%s, blocks=%b" $TEST_IMG | _filter_blocks $extra_blocks $min_blocks $size
|
|
done
|
|
|
|
+for new_size in 4096 1048576; do
|
|
+ echo
|
|
+ echo "== resize empty image with block_resize =="
|
|
+ _make_test_img 0 | _filter_imgfmt
|
|
+ _block_resize $TEST_IMG $new_size >/dev/null
|
|
+ stat -c "size=%s, blocks=%b" $TEST_IMG | _filter_blocks $extra_blocks $min_blocks $new_size
|
|
+done
|
|
+
|
|
# success, all done
|
|
echo "*** done"
|
|
rm -f $seq.full
|
|
diff --git a/tests/qemu-iotests/175.out b/tests/qemu-iotests/175.out
|
|
index 263e521..39c2ee0 100644
|
|
--- a/tests/qemu-iotests/175.out
|
|
+++ b/tests/qemu-iotests/175.out
|
|
@@ -15,4 +15,12 @@ size=1048576, max allocation
|
|
== creating image with preallocation falloc ==
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576 preallocation=falloc
|
|
size=1048576, max allocation
|
|
+
|
|
+== resize empty image with block_resize ==
|
|
+Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=0
|
|
+size=4096, min allocation
|
|
+
|
|
+== resize empty image with block_resize ==
|
|
+Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=0
|
|
+size=1048576, min allocation
|
|
*** done
|
|
--
|
|
1.8.3.1
|
|
|