mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-31 14:23:53 -06:00

Right now "qemu-img map" reports compressed blocks as containing data but having no host offset. This is not very informative. Instead, let's add another boolean field named "compressed" in case JSON output mode is specified. This is achieved by utilizing new allocation status flag BDRV_BLOCK_COMPRESSED for bdrv_block_status(). Also update the expected qemu-iotests outputs to contain the new field. Signed-off-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com> Message-ID: <20230907210226.953821-3-andrey.drobyshev@virtuozzo.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
183 lines
5.8 KiB
Text
183 lines
5.8 KiB
Text
QA output created by qemu-img-bitmaps
|
|
|
|
=== Initial image setup ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=10485760
|
|
wrote 1048576/1048576 bytes at offset 3145728
|
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Formatting 'TEST_DIR/t.IMGFMT.orig', fmt=IMGFMT size=10485760 backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=IMGFMT
|
|
wrote 1048576/1048576 bytes at offset 0
|
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 1048576/1048576 bytes at offset 3145728
|
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 1048576/1048576 bytes at offset 1048576
|
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 1048576/1048576 bytes at offset 2097152
|
|
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
=== Bitmap preservation not possible to non-qcow2 ===
|
|
|
|
qemu-img: Format driver 'raw' does not support bitmaps
|
|
|
|
=== Convert with bitmap preservation ===
|
|
|
|
image: TEST_DIR/t.IMGFMT
|
|
file format: IMGFMT
|
|
virtual size: 10 MiB (10485760 bytes)
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
bitmaps:
|
|
[0]:
|
|
flags:
|
|
name: b1
|
|
granularity: 524288
|
|
[1]:
|
|
flags:
|
|
[0]: auto
|
|
name: b2
|
|
granularity: 65536
|
|
corrupt: false
|
|
image: TEST_DIR/t.IMGFMT
|
|
file format: IMGFMT
|
|
virtual size: 10 MiB (10485760 bytes)
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
bitmaps:
|
|
[0]:
|
|
flags:
|
|
name: b1
|
|
granularity: 524288
|
|
[1]:
|
|
flags:
|
|
[0]: auto
|
|
name: b2
|
|
granularity: 65536
|
|
[2]:
|
|
flags:
|
|
name: b0
|
|
granularity: 65536
|
|
corrupt: false
|
|
|
|
=== Merge from top layer into backing image ===
|
|
|
|
image: TEST_DIR/t.IMGFMT
|
|
file format: IMGFMT
|
|
virtual size: 10 MiB (10485760 bytes)
|
|
cluster_size: 65536
|
|
backing file: TEST_DIR/t.IMGFMT.base
|
|
backing file format: IMGFMT
|
|
Format specific information:
|
|
bitmaps:
|
|
[0]:
|
|
flags:
|
|
name: b1
|
|
granularity: 524288
|
|
[1]:
|
|
flags:
|
|
[0]: auto
|
|
name: b2
|
|
granularity: 65536
|
|
[2]:
|
|
flags:
|
|
name: b0
|
|
granularity: 65536
|
|
corrupt: false
|
|
|
|
image: TEST_DIR/t.IMGFMT.base
|
|
file format: IMGFMT
|
|
virtual size: 10 MiB (10485760 bytes)
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
bitmaps:
|
|
[0]:
|
|
flags:
|
|
[0]: auto
|
|
name: b0
|
|
granularity: 65536
|
|
[1]:
|
|
flags:
|
|
[0]: auto
|
|
name: b3
|
|
granularity: 65536
|
|
corrupt: false
|
|
|
|
=== Check bitmap contents ===
|
|
|
|
[{ "start": 0, "length": 3145728, "depth": 0, "present": true, "zero": false, "data": true, "compressed": false, "offset": OFFSET},
|
|
{ "start": 3145728, "length": 1048576, "depth": 0, "present": false, "zero": false, "data": false, "compressed": false},
|
|
{ "start": 4194304, "length": 6291456, "depth": 0, "present": true, "zero": false, "data": true, "compressed": false, "offset": OFFSET}]
|
|
[{ "start": 0, "length": 1048576, "depth": 0, "present": true, "zero": false, "data": true, "compressed": false, "offset": OFFSET},
|
|
{ "start": 1048576, "length": 1048576, "depth": 0, "present": false, "zero": false, "data": false, "compressed": false},
|
|
{ "start": 2097152, "length": 8388608, "depth": 0, "present": true, "zero": false, "data": true, "compressed": false, "offset": OFFSET}]
|
|
[{ "start": 0, "length": 2097152, "depth": 0, "present": true, "zero": false, "data": true, "compressed": false, "offset": OFFSET},
|
|
{ "start": 2097152, "length": 1048576, "depth": 0, "present": false, "zero": false, "data": false, "compressed": false},
|
|
{ "start": 3145728, "length": 7340032, "depth": 0, "present": true, "zero": false, "data": true, "compressed": false, "offset": OFFSET}]
|
|
[{ "start": 0, "length": 2097152, "depth": 0, "present": true, "zero": false, "data": true, "compressed": false, "offset": OFFSET},
|
|
{ "start": 2097152, "length": 1048576, "depth": 0, "present": false, "zero": false, "data": false, "compressed": false},
|
|
{ "start": 3145728, "length": 7340032, "depth": 0, "present": true, "zero": false, "data": true, "compressed": false, "offset": OFFSET}]
|
|
|
|
=== Check handling of inconsistent bitmap ===
|
|
|
|
image: TEST_DIR/t.IMGFMT
|
|
file format: IMGFMT
|
|
virtual size: 10 MiB (10485760 bytes)
|
|
cluster_size: 65536
|
|
backing file: TEST_DIR/t.IMGFMT.base
|
|
backing file format: IMGFMT
|
|
Format specific information:
|
|
bitmaps:
|
|
[0]:
|
|
flags:
|
|
[0]: in-use
|
|
[1]: auto
|
|
name: b2
|
|
granularity: 65536
|
|
[1]:
|
|
flags:
|
|
[0]: in-use
|
|
name: b0
|
|
granularity: 65536
|
|
[2]:
|
|
flags:
|
|
[0]: auto
|
|
name: b4
|
|
granularity: 65536
|
|
corrupt: false
|
|
|
|
qemu-img: Cannot copy inconsistent bitmap 'b0'
|
|
Try --skip-broken-bitmaps, or use 'qemu-img bitmap --remove' to delete it
|
|
qemu-img: Could not open 'TEST_DIR/t.IMGFMT.copy': Could not open 'TEST_DIR/t.IMGFMT.copy': No such file or directory
|
|
|
|
qemu-img: warning: Skipping inconsistent bitmap 'b0'
|
|
qemu-img: warning: Skipping inconsistent bitmap 'b2'
|
|
image: TEST_DIR/t.IMGFMT.copy
|
|
file format: IMGFMT
|
|
virtual size: 10 MiB (10485760 bytes)
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
bitmaps:
|
|
[0]:
|
|
flags:
|
|
[0]: auto
|
|
name: b4
|
|
granularity: 65536
|
|
corrupt: false
|
|
|
|
image: TEST_DIR/t.IMGFMT.copy
|
|
file format: IMGFMT
|
|
virtual size: 10 MiB (10485760 bytes)
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
bitmaps:
|
|
[0]:
|
|
flags:
|
|
[0]: auto
|
|
name: b4
|
|
granularity: 65536
|
|
[1]:
|
|
flags:
|
|
[0]: auto
|
|
name: b2
|
|
granularity: 65536
|
|
corrupt: false
|
|
*** done
|