mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 07:13:54 -06:00
migration: Enter into COLO mode after migration if COLO is enabled
Add a new migration state: MIGRATION_STATUS_COLO. Migration source side enters this state after the first live migration successfully finished if COLO is enabled by command 'migrate_set_capability x-colo on'. We reuse migration thread, so the process of checkpointing will be handled in migration thread. Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com> Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com> Signed-off-by: Gonglei <arei.gonglei@huawei.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Amit Shah <amit.shah@redhat.com> Signed-off-by: Amit Shah <amit@amitshah.net>
This commit is contained in:
parent
5821ebf93b
commit
0b827d5e72
6 changed files with 80 additions and 6 deletions
|
@ -11,9 +11,38 @@
|
|||
*/
|
||||
|
||||
#include "qemu/osdep.h"
|
||||
#include "sysemu/sysemu.h"
|
||||
#include "migration/colo.h"
|
||||
#include "trace.h"
|
||||
|
||||
bool colo_supported(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool migration_in_colo_state(void)
|
||||
{
|
||||
MigrationState *s = migrate_get_current();
|
||||
|
||||
return (s->state == MIGRATION_STATUS_COLO);
|
||||
}
|
||||
|
||||
static void colo_process_checkpoint(MigrationState *s)
|
||||
{
|
||||
qemu_mutex_lock_iothread();
|
||||
vm_start();
|
||||
qemu_mutex_unlock_iothread();
|
||||
trace_colo_vm_state_change("stop", "run");
|
||||
|
||||
/* TODO: COLO checkpoint savevm loop */
|
||||
|
||||
}
|
||||
|
||||
void migrate_start_colo_process(MigrationState *s)
|
||||
{
|
||||
qemu_mutex_unlock_iothread();
|
||||
migrate_set_state(&s->state, MIGRATION_STATUS_ACTIVE,
|
||||
MIGRATION_STATUS_COLO);
|
||||
colo_process_checkpoint(s);
|
||||
qemu_mutex_lock_iothread();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue