]>
Commit | Line | Data |
---|---|---|
a1532a22 EB |
1 | QA output created by 223 |
2 | ||
a237dea3 | 3 | === Create partially sparse image, then add dirty bitmaps === |
a1532a22 EB |
4 | |
5 | Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=4194304 | |
6 | wrote 2097152/2097152 bytes at offset 1048576 | |
7 | 2 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) | |
8 | Testing: | |
9 | QMP_VERSION | |
10 | {"return": {}} | |
11 | {"return": {}} | |
12 | {"return": {}} | |
13 | {"return": {}} | |
a237dea3 | 14 | {"return": {}} |
92548938 | 15 | {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} |
a1532a22 EB |
16 | |
17 | ||
18 | === Write part of the file under active bitmap === | |
19 | ||
a237dea3 EB |
20 | wrote 512/512 bytes at offset 512 |
21 | 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) | |
a1532a22 EB |
22 | wrote 2097152/2097152 bytes at offset 2097152 |
23 | 2 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) | |
24 | ||
a237dea3 | 25 | === End dirty bitmaps, and start serving image over NBD === |
a1532a22 EB |
26 | |
27 | {"return": {}} | |
28 | {"return": {}} | |
29 | {"return": {}} | |
2d2fd674 | 30 | {"error": {"class": "GenericError", "desc": "NBD server not running"}} |
a1532a22 | 31 | {"return": {}} |
2d2fd674 | 32 | {"error": {"class": "GenericError", "desc": "NBD server already running"}} |
ddd09448 | 33 | exports available: 0 |
a1532a22 | 34 | {"return": {}} |
2d2fd674 EB |
35 | {"error": {"class": "GenericError", "desc": "Cannot find device=nosuch nor node_name=nosuch"}} |
36 | {"error": {"class": "GenericError", "desc": "NBD server already has export named 'n'"}} | |
702aa50d | 37 | {"error": {"class": "GenericError", "desc": "Enabled bitmap 'b2' incompatible with readonly export"}} |
5fcbeb06 | 38 | {"error": {"class": "GenericError", "desc": "Bitmap 'b3' is not found"}} |
a237dea3 | 39 | {"return": {}} |
ddd09448 EB |
40 | exports available: 2 |
41 | export: 'n' | |
42 | size: 4194304 | |
43 | flags: 0x4ef ( readonly flush fua trim zeroes df cache ) | |
b0245d64 | 44 | min block: 1 |
ddd09448 EB |
45 | opt block: 4096 |
46 | max block: 33554432 | |
47 | available meta contexts: 2 | |
48 | base:allocation | |
49 | qemu:dirty-bitmap:b | |
50 | export: 'n2' | |
51 | size: 4194304 | |
52 | flags: 0x4ed ( flush fua trim zeroes df cache ) | |
b0245d64 | 53 | min block: 1 |
ddd09448 EB |
54 | opt block: 4096 |
55 | max block: 33554432 | |
56 | available meta contexts: 2 | |
57 | base:allocation | |
58 | qemu:dirty-bitmap:b2 | |
a1532a22 | 59 | |
a237dea3 | 60 | === Contrast normal status to large granularity dirty-bitmap === |
a1532a22 | 61 | |
a237dea3 EB |
62 | read 512/512 bytes at offset 512 |
63 | 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) | |
64 | read 524288/524288 bytes at offset 524288 | |
65 | 512 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) | |
a1532a22 EB |
66 | read 1048576/1048576 bytes at offset 1048576 |
67 | 1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) | |
68 | read 2097152/2097152 bytes at offset 2097152 | |
69 | 2 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) | |
a62a85ef EB |
70 | [{ "start": 0, "length": 4096, "depth": 0, "zero": false, "data": true, "offset": OFFSET}, |
71 | { "start": 4096, "length": 1044480, "depth": 0, "zero": true, "data": false, "offset": OFFSET}, | |
72 | { "start": 1048576, "length": 3145728, "depth": 0, "zero": false, "data": true, "offset": OFFSET}] | |
a237dea3 | 73 | [{ "start": 0, "length": 65536, "depth": 0, "zero": false, "data": false}, |
a62a85ef | 74 | { "start": 65536, "length": 2031616, "depth": 0, "zero": false, "data": true, "offset": OFFSET}, |
a237dea3 EB |
75 | { "start": 2097152, "length": 2097152, "depth": 0, "zero": false, "data": false}] |
76 | ||
77 | === Contrast to small granularity dirty-bitmap === | |
78 | ||
a62a85ef | 79 | [{ "start": 0, "length": 512, "depth": 0, "zero": false, "data": true, "offset": OFFSET}, |
a237dea3 | 80 | { "start": 512, "length": 512, "depth": 0, "zero": false, "data": false}, |
a62a85ef | 81 | { "start": 1024, "length": 2096128, "depth": 0, "zero": false, "data": true, "offset": OFFSET}, |
a1532a22 EB |
82 | { "start": 2097152, "length": 2097152, "depth": 0, "zero": false, "data": false}] |
83 | ||
636192c4 | 84 | === End qemu NBD server === |
a1532a22 EB |
85 | |
86 | {"return": {}} | |
87 | {"return": {}} | |
2d2fd674 EB |
88 | {"error": {"class": "GenericError", "desc": "Export 'n2' is not found"}} |
89 | {"return": {}} | |
7801c3a7 | 90 | {"error": {"class": "GenericError", "desc": "NBD server not running"}} |
a237dea3 | 91 | {"return": {}} |
054be360 | 92 | {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} |
636192c4 EB |
93 | |
94 | === Use qemu-nbd as server === | |
95 | ||
96 | [{ "start": 0, "length": 65536, "depth": 0, "zero": false, "data": false}, | |
a62a85ef | 97 | { "start": 65536, "length": 2031616, "depth": 0, "zero": false, "data": true, "offset": OFFSET}, |
636192c4 | 98 | { "start": 2097152, "length": 2097152, "depth": 0, "zero": false, "data": false}] |
a62a85ef | 99 | [{ "start": 0, "length": 512, "depth": 0, "zero": false, "data": true, "offset": OFFSET}, |
636192c4 | 100 | { "start": 512, "length": 512, "depth": 0, "zero": false, "data": false}, |
a62a85ef | 101 | { "start": 1024, "length": 2096128, "depth": 0, "zero": false, "data": true, "offset": OFFSET}, |
636192c4 | 102 | { "start": 2097152, "length": 2097152, "depth": 0, "zero": false, "data": false}] |
a1532a22 | 103 | *** done |