qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH alt 7/7] iotests: Expand test 061


From: Max Reitz
Subject: Re: [Qemu-devel] [PATCH alt 7/7] iotests: Expand test 061
Date: Fri, 01 Aug 2014 22:34:03 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0

On 31.07.2014 10:30, Benoît Canet wrote:
The Saturday 26 Jul 2014 à 21:22:11 (+0200), Max Reitz wrote :
Add some tests for progress output to 061.

Signed-off-by: Max Reitz <address@hidden>
---
  tests/qemu-iotests/061     | 27 +++++++++++++++++++++++++++
  tests/qemu-iotests/061.out | 32 ++++++++++++++++++++++++++++++++
  tests/qemu-iotests/group   |  2 +-
  3 files changed, 60 insertions(+), 1 deletion(-)

diff --git a/tests/qemu-iotests/061 b/tests/qemu-iotests/061
index ab98def..fbb5897 100755
--- a/tests/qemu-iotests/061
+++ b/tests/qemu-iotests/061
@@ -209,6 +209,33 @@ $QEMU_IMG amend -o "compat=0.10" "$TEST_IMG"
  _check_test_img
  $QEMU_IO -c "read -P 0 0 64M" "$TEST_IMG" | _filter_qemu_io
+echo
+echo "=== Testing progress report without snapshot ==="
+echo
+IMGOPTS="compat=1.1" TEST_IMG="$TEST_IMG.base" _make_test_img 4G
+IMGOPTS="compat=1.1" _make_test_img -b "$TEST_IMG.base" 4G
+$QEMU_IO -c "write -z 0  64k" \
+         -c "write -z 1G 64k" \
+         -c "write -z 2G 64k" \
+         -c "write -z 3G 64k" "$TEST_IMG" | _filter_qemu_io
+$QEMU_IMG amend -p -o "compat=0.10" "$TEST_IMG"
+_check_test_img
+
+echo
+echo "=== Testing progress report with snapshot ==="
+echo
+IMGOPTS="compat=1.1" TEST_IMG="$TEST_IMG.base" _make_test_img 4G
+IMGOPTS="compat=1.1" _make_test_img -b "$TEST_IMG.base" 4G
+$QEMU_IO -c "write -z 0  64k" \
+         -c "write -z 1G 64k" \
+         -c "write -z 2G 64k" \
+         -c "write -z 3G 64k" "$TEST_IMG" | _filter_qemu_io
+$QEMU_IMG snapshot -c foo "$TEST_IMG"

+# COW L2 table 0
It's not clear what you are trying to achieve here since
it does not appear on the tests output.
Maybe that what you are testing is that it will output nothing
but you should notice it.

Well, this made more use with the other version of the series with the more correct progress output.

If you just take a snapshot, all L2 tables will be shared between the active L1 table and the snapshot's L1 table. Therefore, all zero clusters will be expanded after the active L1 table has been iterated over, because the snapshot's L1 table points to exactly the same L2 tables. When the snapshot's L1 table and its L2 tables are iterated over, the zero cluster expansion function will find no zero clusters any more and so you'd get exactly the same output as without a snapshot (0 %, 25 %, 50 %, 75 %, 100 %).

Now, if you modify one of the L2 tables as in this test which creates a second zero cluster in the first L2 table, that L2 table can no longer be shared between the active and the snapshot L1 table. Instead, it needs to be COW'ed and now there are five L2 tables in the image: Each L1 table has an own version of the very first L2 table, and the other three are shared. In the original version, this led to the following progress output: 0 %, 22 %, 44 %, 67 %, 89 %, 100 % (the first step is for the first active L2 table which contains *two* zero clusters; the following three steps are for the three shared L2 tables which contain one zero cluster each, but since they are shared between two L1 tables, those are accounted for twice; and the last step is the L2 table owned by the snapshot which only has a single zero cluster as well and is referenced only once).

In this version, the L2 zero cluster entries are not counted anymore; all that counts are L1 entries. And since there are as many entries in the first as in the second L1 table, we get the output 0 %, 13 %, 25 %, 38 %, 50 %, etc..

I guest I can drop this COW enforcement in this version of the series, though, since it doesn't (and isn't supposed to) change anything.

Max

+$QEMU_IO -c "write -z 64k 64k" "$TEST_IMG" | _filter_qemu_io
+$QEMU_IMG amend -p -o "compat=0.10" "$TEST_IMG"
+_check_test_img
+
  # success, all done
  echo "*** done"
  rm -f $seq.full
diff --git a/tests/qemu-iotests/061.out b/tests/qemu-iotests/061.out
index e372470..352cca3 100644
--- a/tests/qemu-iotests/061.out
+++ b/tests/qemu-iotests/061.out
@@ -384,4 +384,36 @@ wrote 67108864/67108864 bytes at offset 0
  No errors were found on the image.
  read 67108864/67108864 bytes at offset 0
  64 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+
+=== Testing progress report without snapshot ===
+
+Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=4294967296
+Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=4294967296 
backing_file='TEST_DIR/t.IMGFMT.base'
+wrote 65536/65536 bytes at offset 0
+64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+wrote 65536/65536 bytes at offset 1073741824
+64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+wrote 65536/65536 bytes at offset 2147483648
+64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+wrote 65536/65536 bytes at offset 3221225472
+64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+    (0.00/100%)
     (12.50/100%)
     (37.50/100%)
     (62.50/100%)
     (87.50/100%)
     (100.00/100%)
+No errors were found on the image.
+
+=== Testing progress report with snapshot ===
+
+Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=4294967296
+Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=4294967296 
backing_file='TEST_DIR/t.IMGFMT.base'
+wrote 65536/65536 bytes at offset 0
+64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+wrote 65536/65536 bytes at offset 1073741824
+64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+wrote 65536/65536 bytes at offset 2147483648
+64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+wrote 65536/65536 bytes at offset 3221225472
+64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+wrote 65536/65536 bytes at offset 65536
+64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+    (0.00/100%)
     (6.25/100%)
     (18.75/100%)
     (31.25/100%)
     (43.75/100%)
     (56.25/100%)
     (68.75/100%)
     (81.25/100%)
     (93.75/100%)
     (100.00/100%)
+No errors were found on the image.
  *** done
diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group
index 6e67f61..b27e2f9 100644
--- a/tests/qemu-iotests/group
+++ b/tests/qemu-iotests/group
@@ -67,7 +67,7 @@
  058 rw auto quick
  059 rw auto quick
  060 rw auto quick
-061 rw auto quick
+061 rw auto
  062 rw auto quick
  063 rw auto quick
  064 rw auto quick
--
2.0.3






reply via email to

[Prev in Thread] Current Thread [Next in Thread]