mirror of
https://github.com/xemu-project/xemu.git
synced 2024-12-04 17:56:33 +00:00
fbaa6bb3d3
We've already improved discards to operate efficiently on the tail of an unaligned qcow2 image; it's time to make a similar improvement to write zeroes. The special case is only valid at the tail cluster of a file, where we must recognize that any sectors beyond the image end would implicitly read as zero, and therefore should not penalize our logic for widening a partial cluster into writing the whole cluster as zero. However, note that for now, the special case of end-of-file is only recognized if there is no backing file, or if the backing file has the same length; that's because when the backing file is shorter than the active layer, we don't have code in place to recognize that reads of a sector unallocated at the top and beyond the backing end-of-file are implicitly zero. It's not much of a real loss, because most people don't use images that aren't cluster-aligned, or where the active layer is a different size than the backing layer (especially where the difference falls within a single cluster). Update test 154 to cover the new scenarios, using two images of intentionally differing length. While at it, fix the test to gracefully skip when run as ./check -qcow2 -o compat=0.10 154 since the older format lacks zero clusters already required earlier in the test. Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Message-id: 20170507000552.20847-11-eblake@redhat.com Signed-off-by: Max Reitz <mreitz@redhat.com>
414 lines
23 KiB
Plaintext
414 lines
23 KiB
Plaintext
QA output created by 154
|
|
|
|
== backing file contains zeros ==
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=134217728
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 2048/2048 bytes at offset 0
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 2048/2048 bytes at offset 10240
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 2048/2048 bytes at offset 17408
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 2048/2048 bytes at offset 27648
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
[{ "start": 0, "length": 4096, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 4096, "length": 4096, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 8192, "length": 4096, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 12288, "length": 4096, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 16384, "length": 4096, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 20480, "length": 4096, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 24576, "length": 8192, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 32768, "length": 134184960, "depth": 1, "zero": true, "data": false}]
|
|
|
|
== backing file contains non-zero data before write_zeroes ==
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=134217728
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 1024/1024 bytes at offset 32768
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 1024/1024 bytes at offset 34816
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 32768
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 3072/3072 bytes at offset 33792
|
|
3 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 1024/1024 bytes at offset 66560
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 1024/1024 bytes at offset 67584
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 66560
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 65536
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 2048/2048 bytes at offset 67584
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
[{ "start": 0, "length": 32768, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 32768, "length": 4096, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
|
{ "start": 36864, "length": 28672, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 65536, "length": 4096, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
|
{ "start": 69632, "length": 134148096, "depth": 1, "zero": true, "data": false}]
|
|
|
|
== backing file contains non-zero data after write_zeroes ==
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=134217728
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 1024/1024 bytes at offset 34816
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 1024/1024 bytes at offset 33792
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 2048/2048 bytes at offset 32768
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 34816
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 35840
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 1024/1024 bytes at offset 44032
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 1024/1024 bytes at offset 41984
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 44032
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 3072/3072 bytes at offset 40960
|
|
3 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
[{ "start": 0, "length": 32768, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 32768, "length": 4096, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
|
{ "start": 36864, "length": 4096, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 40960, "length": 4096, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
|
{ "start": 45056, "length": 134172672, "depth": 1, "zero": true, "data": false}]
|
|
|
|
== write_zeroes covers non-zero data ==
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=134217728
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 1024/1024 bytes at offset 5120
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 2048/2048 bytes at offset 5120
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 4096/4096 bytes at offset 4096
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 1024/1024 bytes at offset 14336
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 2048/2048 bytes at offset 13312
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 4096/4096 bytes at offset 12288
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 2048/2048 bytes at offset 21504
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 2048/2048 bytes at offset 21504
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 4096/4096 bytes at offset 20480
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 1024/1024 bytes at offset 30208
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 2048/2048 bytes at offset 29696
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 4096/4096 bytes at offset 28672
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
[{ "start": 0, "length": 4096, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 4096, "length": 4096, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 8192, "length": 4096, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 12288, "length": 4096, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 16384, "length": 4096, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 20480, "length": 4096, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 24576, "length": 4096, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 28672, "length": 4096, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 32768, "length": 134184960, "depth": 1, "zero": true, "data": false}]
|
|
|
|
== spanning two clusters, non-zero before request ==
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=134217728
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 1024/1024 bytes at offset 32768
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 2048/2048 bytes at offset 35840
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 32768
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 7168/7168 bytes at offset 33792
|
|
7 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 1024/1024 bytes at offset 50176
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 2048/2048 bytes at offset 52224
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 49152
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 50176
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 6144/6144 bytes at offset 51200
|
|
6 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 1024/1024 bytes at offset 67584
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 2048/2048 bytes at offset 68608
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 2048/2048 bytes at offset 65536
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 67584
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 5120/5120 bytes at offset 68608
|
|
5 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
[{ "start": 0, "length": 32768, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 32768, "length": 4096, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
|
{ "start": 36864, "length": 4096, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 40960, "length": 8192, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 49152, "length": 4096, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
|
{ "start": 53248, "length": 4096, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 57344, "length": 8192, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 65536, "length": 4096, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
|
{ "start": 69632, "length": 4096, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 73728, "length": 134144000, "depth": 1, "zero": true, "data": false}]
|
|
|
|
== spanning two clusters, non-zero after request ==
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=134217728
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 1024/1024 bytes at offset 37888
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 2048/2048 bytes at offset 35840
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 5120/5120 bytes at offset 32768
|
|
5 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 37888
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 2048/2048 bytes at offset 38912
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 1024/1024 bytes at offset 55296
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 2048/2048 bytes at offset 52224
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 6144/6144 bytes at offset 49152
|
|
6 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 55296
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 56320
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 1024/1024 bytes at offset 72704
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 2048/2048 bytes at offset 68608
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 7168/7168 bytes at offset 65536
|
|
7 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 72704
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
[{ "start": 0, "length": 32768, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 32768, "length": 4096, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 36864, "length": 4096, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
|
{ "start": 40960, "length": 8192, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 49152, "length": 4096, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 53248, "length": 4096, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
|
{ "start": 57344, "length": 8192, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 65536, "length": 4096, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 69632, "length": 4096, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
|
{ "start": 73728, "length": 134144000, "depth": 1, "zero": true, "data": false}]
|
|
|
|
== spanning two clusters, partially overwriting backing file ==
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=134217728
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 4096/4096 bytes at offset 2048
|
|
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 2048/2048 bytes at offset 3072
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 2048/2048 bytes at offset 0
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 2048
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 2048/2048 bytes at offset 3072
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 5120
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 2048/2048 bytes at offset 6144
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
[{ "start": 0, "length": 8192, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
|
{ "start": 8192, "length": 134209536, "depth": 1, "zero": true, "data": false}]
|
|
|
|
== spanning multiple clusters, non-zero in first cluster ==
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=134217728
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 2048/2048 bytes at offset 65536
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 7168/7168 bytes at offset 67584
|
|
7 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 2048/2048 bytes at offset 65536
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 10240/10240 bytes at offset 67584
|
|
10 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
[{ "start": 0, "length": 65536, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 65536, "length": 4096, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
|
{ "start": 69632, "length": 8192, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 77824, "length": 134139904, "depth": 1, "zero": true, "data": false}]
|
|
|
|
== spanning multiple clusters, non-zero in intermediate cluster ==
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=134217728
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 2048/2048 bytes at offset 70656
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 7168/7168 bytes at offset 67584
|
|
7 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 12288/12288 bytes at offset 65536
|
|
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
[{ "start": 0, "length": 65536, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 65536, "length": 12288, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 77824, "length": 134139904, "depth": 1, "zero": true, "data": false}]
|
|
|
|
== spanning multiple clusters, non-zero in final cluster ==
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=134217728
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 2048/2048 bytes at offset 75776
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 7168/7168 bytes at offset 67584
|
|
7 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 10240/10240 bytes at offset 65536
|
|
10 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 2048/2048 bytes at offset 75776
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
[{ "start": 0, "length": 65536, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 65536, "length": 8192, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 73728, "length": 4096, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
|
{ "start": 77824, "length": 134139904, "depth": 1, "zero": true, "data": false}]
|
|
|
|
== spanning multiple clusters, partially overwriting backing file ==
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=134217728
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 10240/10240 bytes at offset 66560
|
|
10 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 7168/7168 bytes at offset 67584
|
|
7 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 65536
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 66560
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 7168/7168 bytes at offset 67584
|
|
7 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 2048/2048 bytes at offset 74752
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 76800
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
[{ "start": 0, "length": 65536, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 65536, "length": 4096, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
|
{ "start": 69632, "length": 4096, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 73728, "length": 4096, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
|
{ "start": 77824, "length": 134139904, "depth": 1, "zero": true, "data": false}]
|
|
|
|
== unaligned image tail cluster, no allocation needed ==
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134219776
|
|
wrote 512/512 bytes at offset 134217728
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
2048/2048 bytes allocated at offset 128 MiB
|
|
[{ "start": 0, "length": 134219776, "depth": 0, "zero": true, "data": false}]
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134219776
|
|
wrote 512/512 bytes at offset 134219264
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
2048/2048 bytes allocated at offset 128 MiB
|
|
[{ "start": 0, "length": 134219776, "depth": 0, "zero": true, "data": false}]
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134219776
|
|
wrote 1024/1024 bytes at offset 134218240
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
2048/2048 bytes allocated at offset 128 MiB
|
|
[{ "start": 0, "length": 134219776, "depth": 0, "zero": true, "data": false}]
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134219776
|
|
wrote 2048/2048 bytes at offset 134217728
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
2048/2048 bytes allocated at offset 128 MiB
|
|
[{ "start": 0, "length": 134219776, "depth": 0, "zero": true, "data": false}]
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=134218752
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134219776 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 512/512 bytes at offset 134217728
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
2048/2048 bytes allocated at offset 128 MiB
|
|
[{ "start": 0, "length": 134217728, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 134217728, "length": 2048, "depth": 0, "zero": false, "data": true, "offset": OFFSET}]
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134219776 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 512/512 bytes at offset 134219264
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
2048/2048 bytes allocated at offset 128 MiB
|
|
[{ "start": 0, "length": 134217728, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 134217728, "length": 2048, "depth": 0, "zero": false, "data": true, "offset": OFFSET}]
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134219776 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 1024/1024 bytes at offset 134218240
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
2048/2048 bytes allocated at offset 128 MiB
|
|
[{ "start": 0, "length": 134217728, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 134217728, "length": 2048, "depth": 0, "zero": false, "data": true, "offset": OFFSET}]
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134219776 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 2048/2048 bytes at offset 134217728
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
2048/2048 bytes allocated at offset 128 MiB
|
|
[{ "start": 0, "length": 134217728, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 134217728, "length": 2048, "depth": 0, "zero": true, "data": false}]
|
|
wrote 512/512 bytes at offset 134217728
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134219776 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 512/512 bytes at offset 134217728
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
2048/2048 bytes allocated at offset 128 MiB
|
|
[{ "start": 0, "length": 134217728, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 134217728, "length": 2048, "depth": 0, "zero": false, "data": true, "offset": OFFSET}]
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134219776 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 512/512 bytes at offset 134219264
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
2048/2048 bytes allocated at offset 128 MiB
|
|
[{ "start": 0, "length": 134217728, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 134217728, "length": 2048, "depth": 0, "zero": false, "data": true, "offset": OFFSET}]
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134219776 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 1024/1024 bytes at offset 134218240
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
2048/2048 bytes allocated at offset 128 MiB
|
|
[{ "start": 0, "length": 134217728, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 134217728, "length": 2048, "depth": 0, "zero": false, "data": true, "offset": OFFSET}]
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134219776 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 2048/2048 bytes at offset 134217728
|
|
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
2048/2048 bytes allocated at offset 128 MiB
|
|
[{ "start": 0, "length": 134217728, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 134217728, "length": 2048, "depth": 0, "zero": true, "data": false}]
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134218752
|
|
wrote 1024/1024 bytes at offset 134217728
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 512/512 bytes at offset 134218240
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 512/512 bytes at offset 134217728
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 512/512 bytes at offset 134218240
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
1024/1024 bytes allocated at offset 128 MiB
|
|
[{ "start": 0, "length": 134217728, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 134217728, "length": 1024, "depth": 0, "zero": false, "data": true, "offset": OFFSET}]
|
|
wrote 1024/1024 bytes at offset 134217728
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
1024/1024 bytes allocated at offset 128 MiB
|
|
read 1024/1024 bytes at offset 134217728
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
[{ "start": 0, "length": 134217728, "depth": 0, "zero": true, "data": false},
|
|
{ "start": 134217728, "length": 1024, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
|
|
|
|
== unaligned image tail cluster, allocation required ==
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=134218752
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134219776 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 512/512 bytes at offset 134217728
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 512/512 bytes at offset 134218752
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 512/512 bytes at offset 134217728
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1536/1536 bytes at offset 134218240
|
|
1.500 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
[{ "start": 0, "length": 134217728, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 134217728, "length": 2048, "depth": 0, "zero": false, "data": true, "offset": OFFSET}]
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=134218752
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134219776 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 512/512 bytes at offset 134218240
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 512/512 bytes at offset 134217728
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 512/512 bytes at offset 134217728
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 512/512 bytes at offset 134218240
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 134218752
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 512/512 bytes at offset 134219264
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 512/512 bytes at offset 134217728
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 512/512 bytes at offset 134218240
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 1024/1024 bytes at offset 134218752
|
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
[{ "start": 0, "length": 134217728, "depth": 1, "zero": true, "data": false},
|
|
{ "start": 134217728, "length": 2048, "depth": 0, "zero": false, "data": true, "offset": OFFSET}]
|
|
*** done
|