mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-31 14:23:53 -06:00
COLO: Remove colo_state migration struct
We need to know if migration is going into COLO state for incoming side before start normal migration. Instead by using the VMStateDescription to send colo_state from source side to destination side, we use MIG_CMD_ENABLE_COLO to indicate whether COLO is enabled or not. Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com> Signed-off-by: Zhang Chen <zhangckid@gmail.com> Signed-off-by: Zhang Chen <chen.zhang@intel.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
parent
8e48ac9586
commit
aad555c229
9 changed files with 57 additions and 83 deletions
|
@ -56,6 +56,7 @@
|
|||
#include "io/channel-file.h"
|
||||
#include "sysemu/replay.h"
|
||||
#include "qjson.h"
|
||||
#include "migration/colo.h"
|
||||
|
||||
#ifndef ETH_P_RARP
|
||||
#define ETH_P_RARP 0x8035
|
||||
|
@ -82,6 +83,7 @@ enum qemu_vm_cmd {
|
|||
were previously sent during
|
||||
precopy but are dirty. */
|
||||
MIG_CMD_PACKAGED, /* Send a wrapped stream within this stream */
|
||||
MIG_CMD_ENABLE_COLO, /* Enable COLO */
|
||||
MIG_CMD_POSTCOPY_RESUME, /* resume postcopy on dest */
|
||||
MIG_CMD_RECV_BITMAP, /* Request for recved bitmap on dst */
|
||||
MIG_CMD_MAX
|
||||
|
@ -841,6 +843,12 @@ static void qemu_savevm_command_send(QEMUFile *f,
|
|||
qemu_fflush(f);
|
||||
}
|
||||
|
||||
void qemu_savevm_send_colo_enable(QEMUFile *f)
|
||||
{
|
||||
trace_savevm_send_colo_enable();
|
||||
qemu_savevm_command_send(f, MIG_CMD_ENABLE_COLO, 0, NULL);
|
||||
}
|
||||
|
||||
void qemu_savevm_send_ping(QEMUFile *f, uint32_t value)
|
||||
{
|
||||
uint32_t buf;
|
||||
|
@ -1922,6 +1930,12 @@ static int loadvm_handle_recv_bitmap(MigrationIncomingState *mis,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int loadvm_process_enable_colo(MigrationIncomingState *mis)
|
||||
{
|
||||
migration_incoming_enable_colo();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Process an incoming 'QEMU_VM_COMMAND'
|
||||
* 0 just a normal return
|
||||
|
@ -2001,6 +2015,9 @@ static int loadvm_process_command(QEMUFile *f)
|
|||
|
||||
case MIG_CMD_RECV_BITMAP:
|
||||
return loadvm_handle_recv_bitmap(mis, len);
|
||||
|
||||
case MIG_CMD_ENABLE_COLO:
|
||||
return loadvm_process_enable_colo(mis);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue