ram: Remove migration_bitmap_extend()
We have disabled memory hotplug, so we don't need to handle migration_bitamp there. Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
This commit is contained in:
parent
b06424de62
commit
66103a5796
1
exec.c
1
exec.c
@ -1758,7 +1758,6 @@ static void ram_block_add(RAMBlock *new_block, Error **errp)
|
||||
new_ram_size = MAX(old_ram_size,
|
||||
(new_block->offset + new_block->max_length) >> TARGET_PAGE_BITS);
|
||||
if (new_ram_size > old_ram_size) {
|
||||
migration_bitmap_extend(old_ram_size, new_ram_size);
|
||||
dirty_memory_extend(old_ram_size, new_ram_size);
|
||||
}
|
||||
/* Keep the list sorted from biggest to smallest block. Unlike QTAILQ,
|
||||
|
@ -413,7 +413,5 @@ uint64_t cpu_physical_memory_sync_dirty_bitmap(unsigned long *dest,
|
||||
|
||||
return num_dirty;
|
||||
}
|
||||
|
||||
void migration_bitmap_extend(ram_addr_t old, ram_addr_t new);
|
||||
#endif
|
||||
#endif
|
||||
|
@ -1496,40 +1496,6 @@ static void ram_state_reset(RAMState *rs)
|
||||
|
||||
#define MAX_WAIT 50 /* ms, half buffered_file limit */
|
||||
|
||||
void migration_bitmap_extend(ram_addr_t old, ram_addr_t new)
|
||||
{
|
||||
RAMState *rs = &ram_state;
|
||||
|
||||
/* called in qemu main thread, so there is
|
||||
* no writing race against this migration_bitmap
|
||||
*/
|
||||
if (rs->ram_bitmap) {
|
||||
RAMBitmap *old_bitmap = rs->ram_bitmap, *bitmap;
|
||||
bitmap = g_new(RAMBitmap, 1);
|
||||
bitmap->bmap = bitmap_new(new);
|
||||
|
||||
/* prevent migration_bitmap content from being set bit
|
||||
* by migration_bitmap_sync_range() at the same time.
|
||||
* it is safe to migration if migration_bitmap is cleared bit
|
||||
* at the same time.
|
||||
*/
|
||||
qemu_mutex_lock(&rs->bitmap_mutex);
|
||||
bitmap_copy(bitmap->bmap, old_bitmap->bmap, old);
|
||||
bitmap_set(bitmap->bmap, old, new - old);
|
||||
|
||||
/* We don't have a way to safely extend the sentmap
|
||||
* with RCU; so mark it as missing, entry to postcopy
|
||||
* will fail.
|
||||
*/
|
||||
bitmap->unsentmap = NULL;
|
||||
|
||||
atomic_rcu_set(&rs->ram_bitmap, bitmap);
|
||||
qemu_mutex_unlock(&rs->bitmap_mutex);
|
||||
rs->migration_dirty_pages += new - old;
|
||||
call_rcu(old_bitmap, migration_bitmap_free, rcu);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 'expected' is the value you expect the bitmap mostly to be full
|
||||
* of; it won't bother printing lines that are all this value.
|
||||
|
Loading…
Reference in New Issue
Block a user