xref: /qemu/tests/qemu-iotests/236.out (revision abff1abf)
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
13write -P0x5d 0 64k
14{"return": ""}
15write -P0xd5 1M 64k
16{"return": ""}
17write -P0xdc 32M 64k
18{"return": ""}
19write -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        "status": "active"
32      },
33      {
34        "busy": false,
35        "count": 262144,
36        "granularity": 65536,
37        "name": "bitmapA",
38        "persistent": false,
39        "recording": true,
40        "status": "active"
41      }
42    ]
43  }
44}
45
46--- Submitting & Aborting Transaction ---
47
48{
49  "execute": "transaction",
50  "arguments": {
51    "actions": [
52      {
53        "data": {
54          "name": "bitmapB",
55          "node": "drive0"
56        },
57        "type": "block-dirty-bitmap-disable"
58      },
59      {
60        "data": {
61          "granularity": 65536,
62          "name": "bitmapC",
63          "node": "drive0"
64        },
65        "type": "block-dirty-bitmap-add"
66      },
67      {
68        "data": {
69          "name": "bitmapA",
70          "node": "drive0"
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      {
91        "busy": false,
92        "count": 262144,
93        "granularity": 65536,
94        "name": "bitmapB",
95        "persistent": false,
96        "recording": true,
97        "status": "active"
98      },
99      {
100        "busy": false,
101        "count": 262144,
102        "granularity": 65536,
103        "name": "bitmapA",
104        "persistent": false,
105        "recording": true,
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": {
120          "name": "bitmapB",
121          "node": "drive0"
122        },
123        "type": "block-dirty-bitmap-disable"
124      },
125      {
126        "data": {
127          "granularity": 65536,
128          "name": "bitmapC",
129          "node": "drive0"
130        },
131        "type": "block-dirty-bitmap-add"
132      },
133      {
134        "data": {
135          "name": "bitmapC",
136          "node": "drive0"
137        },
138        "type": "block-dirty-bitmap-disable"
139      },
140      {
141        "data": {
142          "name": "bitmapC",
143          "node": "drive0"
144        },
145        "type": "block-dirty-bitmap-enable"
146      }
147    ]
148  }
149}
150{
151  "return": {}
152}
153
154--- Emulating further writes ---
155
156write -P0xab 0 64k
157{"return": ""}
158write -P0xad 0x00f8000 64k
159{"return": ""}
160write -P0x1d 0x2008000 64k
161{"return": ""}
162write -P0xea 0x3fe0000 64k
163{"return": ""}
164
165--- Disabling A & C ---
166
167{
168  "execute": "transaction",
169  "arguments": {
170    "actions": [
171      {
172        "data": {
173          "name": "bitmapA",
174          "node": "drive0"
175        },
176        "type": "block-dirty-bitmap-disable"
177      },
178      {
179        "data": {
180          "name": "bitmapC",
181          "node": "drive0"
182        },
183        "type": "block-dirty-bitmap-disable"
184      }
185    ]
186  }
187}
188{
189  "return": {}
190}
191{
192  "bitmaps": {
193    "drive0": [
194      {
195        "busy": false,
196        "count": 393216,
197        "granularity": 65536,
198        "name": "bitmapC",
199        "persistent": false,
200        "recording": false,
201        "status": "disabled"
202      },
203      {
204        "busy": false,
205        "count": 262144,
206        "granularity": 65536,
207        "name": "bitmapB",
208        "persistent": false,
209        "recording": false,
210        "status": "disabled"
211      },
212      {
213        "busy": false,
214        "count": 458752,
215        "granularity": 65536,
216        "name": "bitmapA",
217        "persistent": false,
218        "recording": false,
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": {
233          "disabled": true,
234          "granularity": 65536,
235          "name": "bitmapD",
236          "node": "drive0"
237        },
238        "type": "block-dirty-bitmap-add"
239      },
240      {
241        "data": {
242          "bitmaps": [
243            "bitmapB",
244            "bitmapC"
245          ],
246          "node": "drive0",
247          "target": "bitmapD"
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      {
268        "busy": false,
269        "count": 393216,
270        "granularity": 65536,
271        "name": "bitmapC",
272        "persistent": false,
273        "recording": false,
274        "status": "disabled"
275      },
276      {
277        "busy": false,
278        "count": 262144,
279        "granularity": 65536,
280        "name": "bitmapB",
281        "persistent": false,
282        "recording": false,
283        "status": "disabled"
284      },
285      {
286        "busy": false,
287        "count": 458752,
288        "granularity": 65536,
289        "name": "bitmapA",
290        "persistent": false,
291        "recording": false,
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": {
306          "disabled": true,
307          "granularity": 65536,
308          "name": "bitmapD",
309          "node": "drive0"
310        },
311        "type": "block-dirty-bitmap-add"
312      },
313      {
314        "data": {
315          "bitmaps": [
316            "bitmapB",
317            "bitmapC"
318          ],
319          "node": "drive0",
320          "target": "bitmapD"
321        },
322        "type": "block-dirty-bitmap-merge"
323      }
324    ]
325  }
326}
327{
328  "return": {}
329}
330{
331  "bitmaps": {
332    "drive0": [
333      {
334        "busy": false,
335        "count": 458752,
336        "granularity": 65536,
337        "name": "bitmapD",
338        "persistent": false,
339        "recording": false,
340        "status": "disabled"
341      },
342      {
343        "busy": false,
344        "count": 393216,
345        "granularity": 65536,
346        "name": "bitmapC",
347        "persistent": false,
348        "recording": false,
349        "status": "disabled"
350      },
351      {
352        "busy": false,
353        "count": 262144,
354        "granularity": 65536,
355        "name": "bitmapB",
356        "persistent": false,
357        "recording": false,
358        "status": "disabled"
359      },
360      {
361        "busy": false,
362        "count": 458752,
363        "granularity": 65536,
364        "name": "bitmapA",
365        "persistent": false,
366        "recording": false,
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
394