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