qemu/tests/qemu-iotests
Kevin Wolf ecdd5333ab qcow2: Gather clusters in a looping loop
Instead of just checking once in exactly this order if there are
dependendies, non-COW clusters and new allocation, this starts looping
around these. This way we can, for example, gather non-COW clusters after
new allocations as long as the host cluster offsets stay contiguous.

Once handle_dependencies() is extended so that COW areas of in-flight
allocations can be overwritten, this allows to continue with gathering
other clusters (we wouldn't be able to do that without this change
because we would have missed a possible second dependency in one of the
next clusters).

This means that in the typical sequential write case, we can combine the
COW overwrite of one cluster with the allocation of the next cluster as
soon as something like Delayed COW gets actually implemented. It is only
by avoiding splitting requests this way that Delayed COW actually starts
improving performance noticably.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2013-03-28 11:52:44 +01:00
..
.gitignore qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
001 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
001.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
002 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
002.out qemu-io: correctly print non-integer values as decimals 2012-05-10 10:32:12 +02:00
003 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
003.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
004 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
004.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
005 iotests: fix error in 005 2012-04-19 15:48:52 +02:00
005.out iotests: fix error in 005 2012-04-19 15:48:52 +02:00
006 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
006.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
007 qemu-iotests: use -nographic in test case 007 2013-03-15 16:07:51 +01:00
007.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
008 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
008.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
009 qemu-iotests: Fix call syntax for qemu-io 2012-04-05 15:10:06 +02:00
009.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
010 qemu-iotests: Fix call syntax for qemu-io 2012-04-05 15:10:06 +02:00
010.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
011 qemu-iotests: Fix call syntax for qemu-io 2012-04-05 15:10:06 +02:00
011.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
012 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
012.out qemu-io: correctly print non-integer values as decimals 2012-05-10 10:32:12 +02:00
013 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
013.out qemu-iotests: Always filter cluster_size out in _make_test_img 2012-04-19 15:48:52 +02:00
014 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
014.out qemu-iotests: Always filter cluster_size out in _make_test_img 2012-04-19 15:48:52 +02:00
015 qemu-iotests: Update filter for default cluster size 2012-02-23 10:29:47 +01:00
015.out qemu-iotests: Always filter cluster_size out in _make_test_img 2012-04-19 15:48:52 +02:00
016 qemu-iotests: only run 016 for file and sheepdog protocols 2012-02-23 10:29:47 +01:00
016.out qemu-io: correctly print non-integer values as decimals 2012-05-10 10:32:12 +02:00
017 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
017.out qemu-io: correctly print non-integer values as decimals 2012-05-10 10:32:12 +02:00
018 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
018.out qemu-io: correctly print non-integer values as decimals 2012-05-10 10:32:12 +02:00
019 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
019.out qemu-io: correctly print non-integer values as decimals 2012-05-10 10:32:12 +02:00
020 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
020.out qemu-io: correctly print non-integer values as decimals 2012-05-10 10:32:12 +02:00
021 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
021.out qemu-iotests: test invalid pattern argument handling in qemu-io 2012-02-22 16:17:02 +01:00
022 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
022.out qemu-iotests: Always filter cluster_size out in _make_test_img 2012-04-19 15:48:52 +02:00
023 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
023.out qemu-io: correctly print non-integer values as decimals 2012-05-10 10:32:12 +02:00
024 qemu-iotests: Use zero-based offsets for IO patterns 2012-02-23 10:29:46 +01:00
024.out qemu-iotests: Always filter cluster_size out in _make_test_img 2012-04-19 15:48:52 +02:00
025 qemu-iotests: add qed support to 025 image resize test 2012-02-23 10:29:47 +01:00
025.out qemu-iotests: test bdrv_truncate 2012-02-22 16:17:03 +01:00
026 qemu-img: find the image end offset during check 2013-02-22 21:21:08 +01:00
026.out qemu-iotests: Always filter cluster_size out in _make_test_img 2012-04-19 15:48:52 +02:00
027 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
027.out qemu-io: correctly print non-integer values as decimals 2012-05-10 10:32:12 +02:00
028 qemu-iotests: Test rebase with short backing file 2012-02-29 15:48:44 +01:00
028.out qemu-io: correctly print non-integer values as decimals 2012-05-10 10:32:12 +02:00
029 qemu-iotests: test loading internal snapshots 2012-02-23 10:29:47 +01:00
029.out qemu-iotests: Always filter cluster_size out in _make_test_img 2012-04-19 15:48:52 +02:00
030 qemu-iotests: add tests for streaming error handling 2012-09-28 19:40:56 +02:00
030.out qemu-iotests: add tests for streaming error handling 2012-09-28 19:40:56 +02:00
031 qemu-iotests: Fix test 031 for qcow2 v3 support 2012-04-20 15:57:30 +02:00
031.out qcow2: implement lazy refcounts 2012-08-06 22:39:14 +02:00
032 qemu-iotests: Test bdrv_close while AIO is in flight 2012-04-19 15:48:52 +02:00
032.out qemu-iotests: Test bdrv_close while AIO is in flight 2012-04-19 15:48:52 +02:00
033 qemu-iotests: add a simple test for write_zeroes 2012-04-20 15:57:30 +02:00
033.out qemu-io: correctly print non-integer values as decimals 2012-05-10 10:32:12 +02:00
034 qemu-iotests: Test backing file COW with zero clusters 2012-04-20 15:57:30 +02:00
034.out qemu-iotests: Test backing file COW with zero clusters 2012-04-20 15:57:30 +02:00
035 qemu-iotests: mark 035 qcow2-only 2012-05-25 18:13:44 +02:00
035.out qemu-io: correctly print non-integer values as decimals 2012-05-10 10:32:12 +02:00
036 qemu-img: find the image end offset during check 2013-02-22 21:21:08 +01:00
036.out qcow2: implement lazy refcounts 2012-08-06 22:39:14 +02:00
037 qemu-iotests: Some backing file COW tests 2012-06-15 14:03:43 +02:00
037.out qemu-iotests: Some backing file COW tests 2012-06-15 14:03:43 +02:00
038 qemu-iotests: COW with many AIO requests on the same cluster 2012-06-15 14:03:43 +02:00
038.out qcow2: Improve check for overlapping allocations 2013-03-28 11:52:43 +01:00
039 qemu-img: find the image end offset during check 2013-02-22 21:21:08 +01:00
039.out block: add BLOCK_O_CHECK for qemu-img check 2012-08-10 10:25:12 +02:00
040 qemu-iotests: add relative backing file tests for block-commit (040) 2012-10-24 10:26:19 +02:00
040.out qemu-iotests: add relative backing file tests for block-commit (040) 2012-10-24 10:26:19 +02:00
041 block: Adds mirroring tests for resized images 2013-02-01 14:58:28 +01:00
041.out block: Adds mirroring tests for resized images 2013-02-01 14:58:28 +01:00
042 qemu-iotests: Test qemu-img operation on zero size image 2012-10-24 10:26:18 +02:00
042.out qemu-iotests: Test qemu-img operation on zero size image 2012-10-24 10:26:18 +02:00
043 qemu-iotests: Add 043 backing file chain infinite loop test 2012-10-24 10:26:19 +02:00
043.out qemu-iotests: Add 043 backing file chain infinite loop test 2012-10-24 10:26:19 +02:00
044 qemu-iotests: qcow2: Test growing large refcount table 2012-11-14 18:19:21 +01:00
044.out qcow2: Gather clusters in a looping loop 2013-03-28 11:52:44 +01:00
045 tests: Add tests for fdsets 2012-12-11 11:05:11 +01:00
045.out tests: Add tests for fdsets 2012-12-11 11:05:11 +01:00
046 qemu-iotests: More concurrent allocation scenarios 2013-03-28 11:52:42 +01:00
046.out qemu-iotests: More concurrent allocation scenarios 2013-03-28 11:52:42 +01:00
047 qemu-iotests: Add regression test for b7ab0fea 2013-02-01 14:58:28 +01:00
047.out qemu-iotests: Add regression test for b7ab0fea 2013-02-01 14:58:28 +01:00
048 qemu-iotests: Add qemu-img compare test 2013-02-22 21:21:10 +01:00
048.out qemu-iotests: Add qemu-img compare test 2013-02-22 21:21:10 +01:00
049 qemu-iotests: Test qcow2 image creation options 2013-02-22 21:21:10 +01:00
049.out qemu-iotests: Test qcow2 image creation options 2013-02-22 21:21:10 +01:00
050 qemu-iotests: add tests for rebasing zero clusters 2013-03-15 16:07:51 +01:00
050.out qemu-iotests: add tests for rebasing zero clusters 2013-03-15 16:07:51 +01:00
052 qemu-iotests: add 052 BDRV_O_SNAPSHOT test 2013-03-19 11:48:37 +01:00
052.out qemu-iotests: add 052 BDRV_O_SNAPSHOT test 2013-03-19 11:48:37 +01:00
check qemu-iotests: Add -o and make v3 the default for qcow2 2012-04-20 15:57:30 +02:00
common tests: allow qemu-iotests to be run against nbd backend 2012-11-14 18:19:21 +01:00
common.config tests: allow qemu-iotests to be run against nbd backend 2012-11-14 18:19:21 +01:00
common.filter qemu-iotests: Filter out DOS line endings 2012-02-29 15:48:44 +01:00
common.pattern qemu-iotests: Use zero-based offsets for IO patterns 2012-02-23 10:29:46 +01:00
common.rc qemu-img: add compressed clusters to BlockFragInfo 2013-02-22 21:21:09 +01:00
COPYING qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
group qemu-iotests: add 052 BDRV_O_SNAPSHOT test 2013-03-19 11:48:37 +01:00
iotests.py tests: Add tests for fdsets 2012-12-11 11:05:11 +01:00
Makefile qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
qcow2.py qemu-iotests: qcow2: Test growing large refcount table 2012-11-14 18:19:21 +01:00
qed.py qemu-iotests: add qed.py image manipulation utility 2012-08-06 22:39:14 +02:00
README qemu-iotests: README: Fix spelling 2012-02-23 10:29:46 +01:00

=== This is the QEMU I/O test suite ===

* Intro

This package contains a simple test suite for the I/O layer of qemu.
It does not require a guest, but only the qemu, qemu-img and qemu-io
binaries.  This does limit it to exercise the low-level I/O path only
but no actual block drivers like ide, scsi or virtio.

* Usage

Just run ./check to run all tests for the raw image format, or ./check
-qcow2 to test the qcow2 image format.  The output of ./check -h explains
additional options to test further image formats or I/O methods.

* Feedback and patches

Please send improvements to the test suite, general feedback or just
reports of failing tests cases to qemu-devel@savannah.nongnu.org.