7be2025258
Now that the implementation of subclusters is complete we can finally add the necessary options to create and read images with this feature, which we call "extended L2 entries". Signed-off-by: Alberto Garcia <berto@igalia.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Message-Id: <6476caaa73216bd05b7bb2d504a20415e1665176.1594396418.git.berto@igalia.com> [mreitz: %s/5\.1/5.2/; fixed 302's and 303's reference output] Signed-off-by: Max Reitz <mreitz@redhat.com>
278 lines
12 KiB
Plaintext
278 lines
12 KiB
Plaintext
== Commit tests ==
|
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=2097152 lazy_refcounts=off refcount_bits=16
|
|
|
|
Formatting 'TEST_DIR/PID-mid', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1048576 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
|
|
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=2097152 backing_file=TEST_DIR/PID-mid backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
|
|
|
wrote 2097152/2097152 bytes at offset 0
|
|
2 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
=== Check visible data ===
|
|
read 1048576/1048576 bytes at offset 0
|
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
read 1048576/1048576 bytes at offset 1048576
|
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
=== Checking allocation status ===
|
|
1048576/1048576 bytes allocated at offset 0 bytes
|
|
1048576/1048576 bytes allocated at offset 1 MiB
|
|
|
|
0/1048576 bytes allocated at offset 0 bytes
|
|
0/0 bytes allocated at offset 1 MiB
|
|
|
|
0/1048576 bytes allocated at offset 0 bytes
|
|
0/1048576 bytes allocated at offset 1 MiB
|
|
|
|
=== Checking map ===
|
|
[{ "start": 0, "length": 2097152, "depth": 0, "zero": false, "data": true, "offset": 327680}]
|
|
|
|
Offset Length Mapped to File
|
|
0 0x200000 0x50000 TEST_DIR/PID-base
|
|
|
|
[{ "start": 0, "length": 1048576, "depth": 1, "zero": false, "data": true, "offset": 327680}]
|
|
|
|
Offset Length Mapped to File
|
|
0 0x100000 0x50000 TEST_DIR/PID-base
|
|
|
|
[{ "start": 0, "length": 1048576, "depth": 2, "zero": false, "data": true, "offset": 327680},
|
|
{ "start": 1048576, "length": 1048576, "depth": 0, "zero": true, "data": false}]
|
|
|
|
Offset Length Mapped to File
|
|
0 0x100000 0x50000 TEST_DIR/PID-base
|
|
|
|
=== Testing qemu-img commit (top -> mid) ===
|
|
Image committed.
|
|
|
|
image: TEST_IMG
|
|
file format: IMGFMT
|
|
virtual size: 2 MiB (2097152 bytes)
|
|
cluster_size: 65536
|
|
backing file: TEST_DIR/PID-base
|
|
backing file format: IMGFMT
|
|
Format specific information:
|
|
compat: 1.1
|
|
compression type: zlib
|
|
lazy refcounts: false
|
|
refcount bits: 16
|
|
corrupt: false
|
|
extended l2: false
|
|
|
|
read 1048576/1048576 bytes at offset 0
|
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
read 1048576/1048576 bytes at offset 1048576
|
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
=== Testing HMP commit (top -> mid) ===
|
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=2097152 lazy_refcounts=off refcount_bits=16
|
|
|
|
Formatting 'TEST_DIR/PID-mid', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1048576 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
|
|
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=2097152 backing_file=TEST_DIR/PID-mid backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
|
|
|
wrote 2097152/2097152 bytes at offset 0
|
|
2 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
{"execute": "human-monitor-command", "arguments": {"command-line": "commit drive0"}}
|
|
{"return": ""}
|
|
image: TEST_IMG
|
|
file format: IMGFMT
|
|
virtual size: 2 MiB (2097152 bytes)
|
|
cluster_size: 65536
|
|
backing file: TEST_DIR/PID-base
|
|
backing file format: IMGFMT
|
|
Format specific information:
|
|
compat: 1.1
|
|
compression type: zlib
|
|
lazy refcounts: false
|
|
refcount bits: 16
|
|
corrupt: false
|
|
extended l2: false
|
|
|
|
read 1048576/1048576 bytes at offset 0
|
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
read 1048576/1048576 bytes at offset 1048576
|
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
=== Testing QMP active commit (top -> mid) ===
|
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=2097152 lazy_refcounts=off refcount_bits=16
|
|
|
|
Formatting 'TEST_DIR/PID-mid', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1048576 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
|
|
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=2097152 backing_file=TEST_DIR/PID-mid backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
|
|
|
wrote 2097152/2097152 bytes at offset 0
|
|
2 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
{"execute": "block-commit", "arguments": {"auto-dismiss": false, "base-node": "mid", "device": "top", "job-id": "job0"}}
|
|
{"return": {}}
|
|
{"execute": "job-complete", "arguments": {"id": "job0"}}
|
|
{"return": {}}
|
|
{"data": {"device": "job0", "len": 0, "offset": 0, "speed": 0, "type": "commit"}, "event": "BLOCK_JOB_READY", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}}
|
|
{"data": {"device": "job0", "len": 0, "offset": 0, "speed": 0, "type": "commit"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}}
|
|
{"execute": "job-dismiss", "arguments": {"id": "job0"}}
|
|
{"return": {}}
|
|
image: TEST_IMG
|
|
file format: IMGFMT
|
|
virtual size: 2 MiB (2097152 bytes)
|
|
cluster_size: 65536
|
|
backing file: TEST_DIR/PID-base
|
|
backing file format: IMGFMT
|
|
Format specific information:
|
|
compat: 1.1
|
|
compression type: zlib
|
|
lazy refcounts: false
|
|
refcount bits: 16
|
|
corrupt: false
|
|
extended l2: false
|
|
|
|
read 1048576/1048576 bytes at offset 0
|
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
read 1048576/1048576 bytes at offset 1048576
|
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
== Resize tests ==
|
|
=== preallocation=off ===
|
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=6442450944 lazy_refcounts=off refcount_bits=16
|
|
|
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1073741824 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
|
|
|
wrote 65536/65536 bytes at offset 5368709120
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
Image resized.
|
|
|
|
read 65536/65536 bytes at offset 5368709120
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
1 GiB (0x40000000) bytes not allocated at offset 0 bytes (0x0)
|
|
7 GiB (0x1c0000000) bytes allocated at offset 1 GiB (0x40000000)
|
|
|
|
[{ "start": 0, "length": 1073741824, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 1073741824, "length": 7516192768, "depth": 0, "zero": true, "data": false}]
|
|
|
|
=== preallocation=metadata ===
|
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=34359738368 lazy_refcounts=off refcount_bits=16
|
|
|
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=32212254720 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
|
|
|
wrote 65536/65536 bytes at offset 33285996544
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
Image resized.
|
|
|
|
read 65536/65536 bytes at offset 33285996544
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
30 GiB (0x780000000) bytes not allocated at offset 0 bytes (0x0)
|
|
3 GiB (0xc0000000) bytes allocated at offset 30 GiB (0x780000000)
|
|
|
|
[{ "start": 0, "length": 32212254720, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 32212254720, "length": 536870912, "depth": 0, "zero": true, "data": false, "offset": 327680},
|
|
{ "start": 32749125632, "length": 536870912, "depth": 0, "zero": true, "data": false, "offset": 537264128},
|
|
{ "start": 33285996544, "length": 536870912, "depth": 0, "zero": true, "data": false, "offset": 1074200576},
|
|
{ "start": 33822867456, "length": 536870912, "depth": 0, "zero": true, "data": false, "offset": 1611137024},
|
|
{ "start": 34359738368, "length": 536870912, "depth": 0, "zero": true, "data": false, "offset": 2148139008},
|
|
{ "start": 34896609280, "length": 536870912, "depth": 0, "zero": true, "data": false, "offset": 2685075456}]
|
|
|
|
=== preallocation=falloc ===
|
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=10485760 lazy_refcounts=off refcount_bits=16
|
|
|
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=5242880 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
|
|
|
wrote 65536/65536 bytes at offset 9437184
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
Image resized.
|
|
|
|
read 65536/65536 bytes at offset 9437184
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
5 MiB (0x500000) bytes not allocated at offset 0 bytes (0x0)
|
|
10 MiB (0xa00000) bytes allocated at offset 5 MiB (0x500000)
|
|
|
|
[{ "start": 0, "length": 5242880, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 5242880, "length": 10485760, "depth": 0, "zero": false, "data": true, "offset": 327680}]
|
|
|
|
=== preallocation=full ===
|
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=16777216 lazy_refcounts=off refcount_bits=16
|
|
|
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=8388608 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
|
|
|
wrote 65536/65536 bytes at offset 11534336
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
Image resized.
|
|
|
|
read 65536/65536 bytes at offset 11534336
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
8 MiB (0x800000) bytes not allocated at offset 0 bytes (0x0)
|
|
4 MiB (0x400000) bytes allocated at offset 8 MiB (0x800000)
|
|
|
|
[{ "start": 0, "length": 8388608, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 8388608, "length": 4194304, "depth": 0, "zero": false, "data": true, "offset": 327680}]
|
|
|
|
=== preallocation=off ===
|
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=393216 lazy_refcounts=off refcount_bits=16
|
|
|
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=259072 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
|
|
|
wrote 65536/65536 bytes at offset 259072
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
Image resized.
|
|
|
|
read 65536/65536 bytes at offset 259072
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
192 KiB (0x30000) bytes not allocated at offset 0 bytes (0x0)
|
|
320 KiB (0x50000) bytes allocated at offset 192 KiB (0x30000)
|
|
|
|
[{ "start": 0, "length": 196608, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 196608, "length": 65536, "depth": 0, "zero": false, "data": true, "offset": 327680},
|
|
{ "start": 262144, "length": 262144, "depth": 0, "zero": true, "data": false}]
|
|
|
|
=== preallocation=off ===
|
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=409600 lazy_refcounts=off refcount_bits=16
|
|
|
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=262144 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
|
|
|
wrote 65536/65536 bytes at offset 344064
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
Image resized.
|
|
|
|
read 65536/65536 bytes at offset 344064
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
256 KiB (0x40000) bytes not allocated at offset 0 bytes (0x0)
|
|
256 KiB (0x40000) bytes allocated at offset 256 KiB (0x40000)
|
|
|
|
[{ "start": 0, "length": 262144, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 262144, "length": 262144, "depth": 0, "zero": true, "data": false}]
|
|
|
|
=== preallocation=off ===
|
|
Formatting 'TEST_DIR/PID-base', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=524288 lazy_refcounts=off refcount_bits=16
|
|
|
|
Formatting 'TEST_DIR/PID-top', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=262144 backing_file=TEST_DIR/PID-base backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
|
|
|
|
wrote 65536/65536 bytes at offset 446464
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
Image resized.
|
|
|
|
read 65536/65536 bytes at offset 446464
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
256 KiB (0x40000) bytes not allocated at offset 0 bytes (0x0)
|
|
244 KiB (0x3d000) bytes allocated at offset 256 KiB (0x40000)
|
|
|
|
[{ "start": 0, "length": 262144, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 262144, "length": 249856, "depth": 0, "zero": true, "data": false}]
|
|
|