/qemu/tests/qemu-iotests/ |
H A D | 300 | 6 # Tests for dirty bitmaps migration with node aliases 68 for name in ('dirty-bitmaps', 'events')] 127 'bitmaps': [{ 166 assert isinstance(node['bitmaps'], list) 167 for bitmap in node['bitmaps']: 261 Note that mapping nodes or bitmaps that do not exist is not an error. 269 'bitmaps': [{ 277 'bitmaps': [{ 292 'bitmaps': [ 314 'bitmaps': [{ [all …]
|
H A D | 257 | 231 bitmaps = drive.vm.query_bitmaps() 232 log({'bitmaps': bitmaps}, indent=2) 234 return bitmaps 258 - on-success: This is the "incremental" style mode. Bitmaps are 262 Bitmaps are never synchronized. 264 Bitmaps are always synchronized, regardless of failure. 344 bitmaps = perform_writes(drive0, 1) 346 bitmap = vm.get_bitmap(drive0.node, 'bitmap0', bitmaps=bitmaps) 362 bitmaps = perform_writes(drive0, 2, filter_node_name='backup-top') 365 bitmaps=bitmaps)) [all …]
|
H A D | 190.out | 2 == Huge file without bitmaps == 9 bitmaps size: 0 12 bitmaps size: 0 14 == Huge file with bitmaps == 28 bitmaps size: 537198592 32 "bitmaps": 545259520,
|
H A D | 178.out.qcow2 | 40 bitmaps size: 0 49 bitmaps size: 0 58 bitmaps size: 0 66 bitmaps size: 0 74 bitmaps size: 0 80 bitmaps size: 0 86 bitmaps size: 0 97 bitmaps size: 0 184 "bitmaps": 0, 195 "bitmaps": 0, [all …]
|
H A D | 246.out | 6 --- Adding bitmaps Small, Medium, Large, and Transient --- 16 --- Forcing flush of bitmaps to disk --- 19 "bitmaps": { 59 "bitmaps": { 96 "bitmaps": { 141 --- Forcing flush of bitmaps to disk --- 146 "bitmaps": { 205 --- Forcing flush of bitmaps to disk --- 210 "bitmaps": { 255 --- Removing all Bitmaps --- [all …]
|
H A D | 236.out | 4 --- Adding preliminary bitmaps A & B --- 22 "bitmaps": { 86 "bitmaps": { 188 "bitmaps": { 235 "bitmaps": [ 258 "bitmaps": { 305 "bitmaps": [ 321 "bitmaps": { 359 --- Removing bitmaps A, B, C, and D --- 373 "bitmaps": {
|
H A D | 242.out | 39 bitmaps: 48 The same bitmaps in JSON format: 73 bitmaps: 87 The same bitmaps in JSON format: 115 bitmaps: 131 The same bitmaps in JSON format: 166 bitmaps:
|
H A D | 246 | 34 return { "bitmaps": { device['device']: device.get('inserted', {}) 35 .get('dirty-bitmaps', []) for 49 log('\n--- Adding bitmaps Small, Medium, Large, and Transient ---\n') 59 log('--- Forcing flush of bitmaps to disk ---\n') 77 log('--- Forcing flush of bitmaps to disk ---\n') 100 log('--- Forcing flush of bitmaps to disk ---\n') 108 log('--- Removing all Bitmaps ---\n')
|
H A D | 254 | 54 'bitmaps': [{'node': 'base', 'name': 'bitmap0'}]}}, 61 'bitmaps': [{'node': 'base', 'name': 'bitmap1'}]}}, 69 'bitmaps': [{'node': 'base', 'name': 'bitmap2'}]}}, 75 log("query-block: device = {}, node-name = {}, dirty-bitmaps:".format( 77 log(result['inserted']['dirty-bitmaps'], indent=2) 80 ['data']['bitmaps'], indent=2)
|
H A D | 254.out | 28 "bitmaps": [ 49 "bitmaps": [ 70 "bitmaps": [ 94 query-block: device = drive0, node-name = snap, dirty-bitmaps: 122 bitmaps in backing image:
|
H A D | 257.out | 20 "bitmaps": {} 53 "bitmaps": { 108 "bitmaps": { 163 "bitmaps": { 191 "bitmaps": { 239 "bitmaps": { 261 "bitmaps": {} 289 "bitmaps": {} 322 "bitmaps": { 370 "bitmaps": { [all …]
|
H A D | 190 | 45 # compat=0.10 does not support bitmaps 48 echo "== Huge file without bitmaps ==" 58 echo "== Huge file with bitmaps ==" 68 # No bitmap output, since no bitmaps on raw source. Munge required size, as 75 # Compute expected output: bitmap clusters + bitmap tables + bitmaps directory 88 # Compute expected output: bitmap clusters + bitmap tables + bitmaps directory
|
H A D | 242 | 43 if 'bitmaps' in result['format-specific']['data']: 44 bitmaps = result['format-specific']['data']['bitmaps'] 45 log('The same bitmaps in JSON format:') 46 log(bitmaps, indent=2)
|
H A D | 194 | 70 {'capability': 'dirty-bitmaps', 'state': True}] 105 iotests.log('Check bitmaps on source:') 106 iotests.log(source_vm.qmp('query-block')['return'][0]['inserted']['dirty-bitmaps']) 108 iotests.log('Check bitmaps on target:') 109 iotests.log(dest_vm.qmp('query-block')['return'][0]['inserted']['dirty-bitmaps'])
|
H A D | 260 | 4 # Tests for temporary external snapshot when we have bitmaps. 37 if 'dirty-bitmaps' in info: 38 bitmap = info['dirty-bitmaps'][0] 63 print_bitmap('check that no bitmaps are in snapshot', vm)
|
H A D | 236 | 42 return { "bitmaps": { device['device']: device.get('inserted', {}).get('dirty-bitmaps', []) for 53 log('\n--- Adding preliminary bitmaps A & B ---\n') 124 "bitmaps": ["bitmapB", "bitmapC"] }}, 137 "bitmaps": ["bitmapB", "bitmapC"] }} 152 log('\n--- Removing bitmaps A, B, C, and D ---\n')
|
/qemu/tests/qemu-iotests/tests/ |
H A D | qemu-img-bitmaps | 45 # compat=0.10 does not support bitmaps 49 # output (we only want the bitmaps, basically) 65 # Create initial image and populate two bitmaps: one active, one inactive. 84 $QEMU_IMG convert --bitmaps -O raw "$TEST_IMG.orig" "$TEST_IMG" && 91 # Only bitmaps from the active layer are copied 92 $QEMU_IMG convert --bitmaps -O qcow2 "$TEST_IMG.orig" "$TEST_IMG" 94 # But we can also merge in bitmaps from other layers. This test is a bit 118 # x-dirty-bitmap is a hack for reading bitmaps; it abuses block status to 143 # Proof that we fail fast if bitmaps can't be copied 145 $QEMU_IMG convert --bitmaps -O qcow2 "$TEST_IMG" "$TEST_IMG.copy" && [all …]
|
H A D | migrate-bitmaps-postcopy-test | 4 # Tests for dirty bitmaps postcopy migration. 73 assert 'dirty-bitmaps' not in info 75 assert len(info['dirty-bitmaps']) == count 140 # other bitmaps 151 # Now, enable some bitmaps, to be updated during migration 156 caps = [{'capability': 'dirty-bitmaps', 'state': True}, 175 # enabled bitmaps should be updated 194 # check that there are no bitmaps stored on source 200 # check that bitmaps are migrated and persistence works 204 # loading bitmaps from disk [all …]
|
H A D | qemu-img-close-errors.out | 3 === Test with 6 bitmaps === 9 qemu-img: Lost persistent bitmaps during inactivation of node 'NODE_NAME': Failed to write bitmap '… 11 qemu-img: Lost persistent bitmaps during inactivation of node 'NODE_NAME': Failed to write bitmap '… 14 === Test with 7 bitmaps === 17 qemu-img: Lost persistent bitmaps during inactivation of node 'NODE_NAME': Failed to write bitmap '… 18 qemu-img: Lost persistent bitmaps during inactivation of node 'NODE_NAME': Failed to write bitmap '…
|
H A D | qemu-img-bitmaps.out | 1 QA output created by qemu-img-bitmaps 20 qemu-img: Format driver 'raw' does not support bitmaps 29 bitmaps: 45 bitmaps: 70 bitmaps: 91 bitmaps: 128 bitmaps: 148 Try --skip-broken-bitmaps, or use 'qemu-img bitmap --remove' to delete it 158 bitmaps: 171 bitmaps:
|
/qemu/docs/interop/ |
H A D | bitmaps.rst | 9 Dirty Bitmaps and Incremental Backup 12 Dirty Bitmaps are in-memory objects that track writes to block devices. They 29 Bitmaps are bit vectors where each '1' bit in the vector indicates a modified 46 QEMU uses these bitmaps when making incremental backups to know which sections 50 Bitmaps can be created at any time and can be attached to any arbitrary block 59 QEMU supports persisting these bitmaps to disk via the qcow2 image format. 60 Bitmaps which are stored or loaded in this way are called "persistent", 61 whereas bitmaps that are not are called "transient". 63 QEMU also supports the migration of both transient bitmaps (tracking any 64 arbitrary image format) or persistent bitmaps (qcow2) via live migration. [all …]
|
H A D | qcow2.rst | 149 Bit 0: Bitmaps extension bit 150 This bit indicates consistency for the bitmaps 154 bitmaps extension present. 156 If the bitmaps extension is present but this 157 bit is unset, the bitmaps extension data must be 259 0x23852875 - Bitmaps extension 317 Bitmaps extension 320 The bitmaps extension is an optional header extension. It provides the ability 321 to store bitmaps related to a virtual disk. For now, there is only one bitmap 328 The fields of the bitmaps extension are:: [all …]
|
/qemu/migration/ |
H A D | block-dirty-bitmap.c | 21 * Here postcopy migration of dirty bitmaps is realized. Only QMP-addressable 22 * bitmaps are migrated. 162 * bitmaps or nodes. 166 GSList *bitmaps; member 167 QemuMutex lock; /* protect bitmaps */ 284 for (bmbal = bmna->bitmaps; bmbal; bmbal = bmbal->next) { in construct_alias_map() 516 /* Skip bitmaps on nodes with no alias */ in add_bitmaps_to_list() 550 /* Skip bitmaps with no alias */ in add_bitmaps_to_list() 637 /* Skip filters without bitmaps */ in init_dirty_bitmap_migration() 855 s->bitmaps = g_slist_prepend(s->bitmaps, b); in dirty_bitmap_load_start() [all …]
|
/qemu/block/ |
H A D | parallels-ext.c | 119 * @data buffer (of @data_size size) is the Dirty bitmaps feature which 154 error_setg(errp, "Bitmaps feature corrupted: l1 table exceeds " in parallels_load_bitmap() 195 GSList *bitmaps = NULL, *el; in parallels_parse_format_extension() local 261 bitmaps = g_slist_append(bitmaps, bitmap); in parallels_parse_format_extension() 273 for (el = bitmaps; el; el = el->next) { in parallels_parse_format_extension() 276 g_slist_free(bitmaps); in parallels_parse_format_extension()
|
H A D | qcow2-bitmap.c | 2 * Bitmaps for the QCOW version 2 format 36 /* NOTICE: BME here means Bitmaps Extension and used as a namespace for 601 error_setg(errp, "More bitmaps found than specified in header" in bitmap_list_load() 633 error_setg(errp, "Less bitmaps found than specified in header" in bitmap_list_load() 854 * 1. Autoclear flag is dropped, all bitmaps will be lost. in update_ext_header_and_dir_in_place() 880 * 1. Autoclear flag is not set, all bitmaps will be lost. in update_ext_header_and_dir_in_place() 981 /* No bitmaps - nothing to do */ in qcow2_load_dirty_bitmaps() 1002 * with dirty-bitmaps capability enabled: if the bitmap was loaded in qcow2_load_dirty_bitmaps() 1094 * bitmaps, info_list is set to NULL). 1142 /* No bitmaps - nothing to do */ in qcow2_reopen_bitmaps_rw() [all …]
|