master
out 379 lines 6.98 KB
Raw
1 --- Preparing image & VM ---
2
3
4 --- Adding preliminary bitmaps A & B ---
5
6 {"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmapA", "node": "drive0"}}
7 {"return": {}}
8 {"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmapB", "node": "drive0"}}
9 {"return": {}}
10
11 --- Emulating writes ---
12
13 write -P0x5d 0 64k
14 {"return": ""}
15 write -P0xd5 1M 64k
16 {"return": ""}
17 write -P0xdc 32M 64k
18 {"return": ""}
19 write -P0xcd 0x3ff0000 64k
20 {"return": ""}
21 {
22 "bitmaps": {
23 "drive0": [
24 {
25 "busy": false,
26 "count": 262144,
27 "granularity": 65536,
28 "name": "bitmapB",
29 "persistent": false,
30 "recording": true
31 },
32 {
33 "busy": false,
34 "count": 262144,
35 "granularity": 65536,
36 "name": "bitmapA",
37 "persistent": false,
38 "recording": true
39 }
40 ]
41 }
42 }
43
44 --- Submitting & Aborting Transaction ---
45
46 {
47 "execute": "transaction",
48 "arguments": {
49 "actions": [
50 {
51 "data": {
52 "name": "bitmapB",
53 "node": "drive0"
54 },
55 "type": "block-dirty-bitmap-disable"
56 },
57 {
58 "data": {
59 "granularity": 65536,
60 "name": "bitmapC",
61 "node": "drive0"
62 },
63 "type": "block-dirty-bitmap-add"
64 },
65 {
66 "data": {
67 "name": "bitmapA",
68 "node": "drive0"
69 },
70 "type": "block-dirty-bitmap-clear"
71 },
72 {
73 "data": {},
74 "type": "abort"
75 }
76 ]
77 }
78 }
79 {
80 "error": {
81 "class": "GenericError",
82 "desc": "Transaction aborted using Abort action"
83 }
84 }
85 {
86 "bitmaps": {
87 "drive0": [
88 {
89 "busy": false,
90 "count": 262144,
91 "granularity": 65536,
92 "name": "bitmapB",
93 "persistent": false,
94 "recording": true
95 },
96 {
97 "busy": false,
98 "count": 262144,
99 "granularity": 65536,
100 "name": "bitmapA",
101 "persistent": false,
102 "recording": true
103 }
104 ]
105 }
106 }
107
108 --- Disabling B & Adding C ---
109
110 {
111 "execute": "transaction",
112 "arguments": {
113 "actions": [
114 {
115 "data": {
116 "name": "bitmapB",
117 "node": "drive0"
118 },
119 "type": "block-dirty-bitmap-disable"
120 },
121 {
122 "data": {
123 "granularity": 65536,
124 "name": "bitmapC",
125 "node": "drive0"
126 },
127 "type": "block-dirty-bitmap-add"
128 },
129 {
130 "data": {
131 "name": "bitmapC",
132 "node": "drive0"
133 },
134 "type": "block-dirty-bitmap-disable"
135 },
136 {
137 "data": {
138 "name": "bitmapC",
139 "node": "drive0"
140 },
141 "type": "block-dirty-bitmap-enable"
142 }
143 ]
144 }
145 }
146 {
147 "return": {}
148 }
149
150 --- Emulating further writes ---
151
152 write -P0xab 0 64k
153 {"return": ""}
154 write -P0xad 0x00f8000 64k
155 {"return": ""}
156 write -P0x1d 0x2008000 64k
157 {"return": ""}
158 write -P0xea 0x3fe0000 64k
159 {"return": ""}
160
161 --- Disabling A & C ---
162
163 {
164 "execute": "transaction",
165 "arguments": {
166 "actions": [
167 {
168 "data": {
169 "name": "bitmapA",
170 "node": "drive0"
171 },
172 "type": "block-dirty-bitmap-disable"
173 },
174 {
175 "data": {
176 "name": "bitmapC",
177 "node": "drive0"
178 },
179 "type": "block-dirty-bitmap-disable"
180 }
181 ]
182 }
183 }
184 {
185 "return": {}
186 }
187 {
188 "bitmaps": {
189 "drive0": [
190 {
191 "busy": false,
192 "count": 393216,
193 "granularity": 65536,
194 "name": "bitmapC",
195 "persistent": false,
196 "recording": false
197 },
198 {
199 "busy": false,
200 "count": 262144,
201 "granularity": 65536,
202 "name": "bitmapB",
203 "persistent": false,
204 "recording": false
205 },
206 {
207 "busy": false,
208 "count": 458752,
209 "granularity": 65536,
210 "name": "bitmapA",
211 "persistent": false,
212 "recording": false
213 }
214 ]
215 }
216 }
217
218 --- Submitting & Aborting Merge Transaction ---
219
220 {
221 "execute": "transaction",
222 "arguments": {
223 "actions": [
224 {
225 "data": {
226 "disabled": true,
227 "granularity": 65536,
228 "name": "bitmapD",
229 "node": "drive0"
230 },
231 "type": "block-dirty-bitmap-add"
232 },
233 {
234 "data": {
235 "bitmaps": [
236 "bitmapB",
237 "bitmapC"
238 ],
239 "node": "drive0",
240 "target": "bitmapD"
241 },
242 "type": "block-dirty-bitmap-merge"
243 },
244 {
245 "data": {},
246 "type": "abort"
247 }
248 ]
249 }
250 }
251 {
252 "error": {
253 "class": "GenericError",
254 "desc": "Transaction aborted using Abort action"
255 }
256 }
257 {
258 "bitmaps": {
259 "drive0": [
260 {
261 "busy": false,
262 "count": 393216,
263 "granularity": 65536,
264 "name": "bitmapC",
265 "persistent": false,
266 "recording": false
267 },
268 {
269 "busy": false,
270 "count": 262144,
271 "granularity": 65536,
272 "name": "bitmapB",
273 "persistent": false,
274 "recording": false
275 },
276 {
277 "busy": false,
278 "count": 458752,
279 "granularity": 65536,
280 "name": "bitmapA",
281 "persistent": false,
282 "recording": false
283 }
284 ]
285 }
286 }
287
288 --- Creating D as a merge of B & C ---
289
290 {
291 "execute": "transaction",
292 "arguments": {
293 "actions": [
294 {
295 "data": {
296 "disabled": true,
297 "granularity": 65536,
298 "name": "bitmapD",
299 "node": "drive0"
300 },
301 "type": "block-dirty-bitmap-add"
302 },
303 {
304 "data": {
305 "bitmaps": [
306 "bitmapB",
307 "bitmapC"
308 ],
309 "node": "drive0",
310 "target": "bitmapD"
311 },
312 "type": "block-dirty-bitmap-merge"
313 }
314 ]
315 }
316 }
317 {
318 "return": {}
319 }
320 {
321 "bitmaps": {
322 "drive0": [
323 {
324 "busy": false,
325 "count": 458752,
326 "granularity": 65536,
327 "name": "bitmapD",
328 "persistent": false,
329 "recording": false
330 },
331 {
332 "busy": false,
333 "count": 393216,
334 "granularity": 65536,
335 "name": "bitmapC",
336 "persistent": false,
337 "recording": false
338 },
339 {
340 "busy": false,
341 "count": 262144,
342 "granularity": 65536,
343 "name": "bitmapB",
344 "persistent": false,
345 "recording": false
346 },
347 {
348 "busy": false,
349 "count": 458752,
350 "granularity": 65536,
351 "name": "bitmapA",
352 "persistent": false,
353 "recording": false
354 }
355 ]
356 }
357 }
358
359 --- Removing bitmaps A, B, C, and D ---
360
361 {"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmapA", "node": "drive0"}}
362 {"return": {}}
363 {"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmapB", "node": "drive0"}}
364 {"return": {}}
365 {"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmapC", "node": "drive0"}}
366 {"return": {}}
367 {"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmapD", "node": "drive0"}}
368 {"return": {}}
369
370 --- Final Query ---
371
372 {
373 "bitmaps": {
374 "drive0": []
375 }
376 }
377
378 --- Done ---
379