 d0a14a2ba0
			
		
	
	
		d0a14a2ba0
		
	
	
	
	
		
			
			Let's make better public interface for COLO: instead of colo_process_incoming_thread and not trivial logic around creating the thread let's make simple colo_incoming_co(), hiding implementation from generic code. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> Reviewed-by: Juan Quintela <quintela@redhat.com> Message-Id: <20230515130640.46035-4-vsementsov@yandex-team.ru> Signed-off-by: Juan Quintela <quintela@redhat.com>
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * COarse-grain LOck-stepping Virtual Machines for Non-stop Service (COLO)
 | |
|  * (a.k.a. Fault Tolerance or Continuous Replication)
 | |
|  *
 | |
|  * Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD.
 | |
|  * Copyright (c) 2016 FUJITSU LIMITED
 | |
|  * Copyright (c) 2016 Intel Corporation
 | |
|  *
 | |
|  * This work is licensed under the terms of the GNU GPL, version 2 or
 | |
|  * later.  See the COPYING file in the top-level directory.
 | |
|  */
 | |
| 
 | |
| #ifndef QEMU_COLO_H
 | |
| #define QEMU_COLO_H
 | |
| 
 | |
| #include "qapi/qapi-types-migration.h"
 | |
| 
 | |
| enum colo_event {
 | |
|     COLO_EVENT_NONE,
 | |
|     COLO_EVENT_CHECKPOINT,
 | |
|     COLO_EVENT_FAILOVER,
 | |
| };
 | |
| 
 | |
| void migrate_start_colo_process(MigrationState *s);
 | |
| bool migration_in_colo_state(void);
 | |
| 
 | |
| /* loadvm */
 | |
| int migration_incoming_enable_colo(void);
 | |
| void migration_incoming_disable_colo(void);
 | |
| bool migration_incoming_colo_enabled(void);
 | |
| bool migration_incoming_in_colo_state(void);
 | |
| 
 | |
| COLOMode get_colo_mode(void);
 | |
| 
 | |
| /* failover */
 | |
| void colo_do_failover(void);
 | |
| 
 | |
| /*
 | |
|  * colo_checkpoint_delay_set
 | |
|  *
 | |
|  * Handles change of x-checkpoint-delay migration parameter, called from
 | |
|  * migrate_params_apply() to notify COLO module about the change.
 | |
|  */
 | |
| void colo_checkpoint_delay_set(void);
 | |
| 
 | |
| /*
 | |
|  * Starts COLO incoming process. Called from process_incoming_migration_co()
 | |
|  * after loading the state.
 | |
|  *
 | |
|  * Called with BQL locked, may temporary release BQL.
 | |
|  */
 | |
| int coroutine_fn colo_incoming_co(void);
 | |
| 
 | |
| void colo_shutdown(void);
 | |
| #endif
 |