mirror of
https://github.com/qemu/qemu.git
synced 2024-11-23 19:03:38 +08:00
migration/colo: Use ram_block_discard_disable()
COLO will copy all memory in a RAM block, disable discarding of RAM. Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Tested-by: Lukas Straub <lukasstraub2@web.de> Cc: "Michael S. Tsirkin" <mst@redhat.com> Cc: Hailiang Zhang <zhang.zhanghailiang@huawei.com> Cc: Juan Quintela <quintela@redhat.com> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com> Signed-off-by: David Hildenbrand <david@redhat.com> Message-Id: <20200626072248.78761-10-david@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
5f1f1902f8
commit
18b1d3c952
@ -25,7 +25,7 @@ void migrate_start_colo_process(MigrationState *s);
|
||||
bool migration_in_colo_state(void);
|
||||
|
||||
/* loadvm */
|
||||
void migration_incoming_enable_colo(void);
|
||||
int migration_incoming_enable_colo(void);
|
||||
void migration_incoming_disable_colo(void);
|
||||
bool migration_incoming_colo_enabled(void);
|
||||
void *colo_process_incoming_thread(void *opaque);
|
||||
|
@ -338,12 +338,18 @@ bool migration_incoming_colo_enabled(void)
|
||||
|
||||
void migration_incoming_disable_colo(void)
|
||||
{
|
||||
ram_block_discard_disable(false);
|
||||
migration_colo_enabled = false;
|
||||
}
|
||||
|
||||
void migration_incoming_enable_colo(void)
|
||||
int migration_incoming_enable_colo(void)
|
||||
{
|
||||
if (ram_block_discard_disable(true)) {
|
||||
error_report("COLO: cannot disable RAM discard");
|
||||
return -EBUSY;
|
||||
}
|
||||
migration_colo_enabled = true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void migrate_add_address(SocketAddress *address)
|
||||
|
@ -2111,8 +2111,15 @@ static int loadvm_handle_recv_bitmap(MigrationIncomingState *mis,
|
||||
|
||||
static int loadvm_process_enable_colo(MigrationIncomingState *mis)
|
||||
{
|
||||
migration_incoming_enable_colo();
|
||||
return colo_init_ram_cache();
|
||||
int ret = migration_incoming_enable_colo();
|
||||
|
||||
if (!ret) {
|
||||
ret = colo_init_ram_cache();
|
||||
if (ret) {
|
||||
migration_incoming_disable_colo();
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user