migration/colo.c: Fix compilation issue when disable replication
PATCH 1/1 migration/colo.c: Fix compilation issue when disable replication
This compilation issue will occur when user use --disable-replication to config Qemu.
--- migration/colo.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-)
migration/colo.c +17 -1
@@ -59,6 +59,8 @@ static bool colo_runstate_is_stopped(void)static void secondary_vm_do_failover (void ) { +/* COLO needs enable block-replication */ +#ifdef CONFIG_REPLICATION int old_state;MigrationIncomingState *mis =migration_incoming_get_current ();Error *local_err =NULL ;
@@ -121,10 +123,14 @@ static void secondary_vm_do_failover(void)if (mis->migration_incoming_co) {qemu_coroutine_enter (mis->migration_incoming_co); } +#else +abort (); +#endif }static void primary_vm_do_failover (void ) { +#ifdef CONFIG_REPLICATION MigrationState *s =migrate_get_current ();int old_state;Error *local_err =NULL ;
@@ -165,6 +171,9 @@ static void primary_vm_do_failover(void)/* Notify COLO thread that failover work is finished */ qemu_sem_post (&s->colo_exit_sem); +#else +abort (); +#endif }COLOMode get_colo_mode (void )
@@ -373,6 +382,7 @@ static int colo_do_checkpoint_transaction(MigrationState *s, QIOChannelBuffer *bioc, QEMUFile *fb) { +#ifdef CONFIG_REPLICATION Error *local_err =NULL ;int ret =-1 ;
@@ -483,6 +493,9 @@ out: error_report_err(local_err); }return ret; +#else +abort (); +#endif }static void colo_compare_notify_checkpoint (Notifier *notifier,void *data)
@@ -790,13 +803,16 @@ void *colo_process_incoming_thread(void *opaque)qemu_mutex_unlock_iothread (); goto out; } +#ifdef CONFIG_REPLICATION /* discard colo disk buffer */ replication_do_checkpoint_all (&local_err);if (local_err) {qemu_mutex_unlock_iothread (); goto out; } - +#else +abort (); +#endif /* Notify all filters of all NIC to do checkpoint */ colo_notify_filters_event (COLO_EVENT_CHECKPOINT , &local_err);
Signature · 1 line
2.17.GIT
Quoted 5 lines · * Zhang Chen ([email protected]) wrote:
This compilation issue will occur when user use --disable-replication to config Qemu.
Reported-by Thomas Huth <[email protected]>Signed-off-by Zhang Chen <[email protected]>
OK; do we need to add a check to migrate_caps_check to stop you enabling colo in this case?
Quoted 81 lines
--- migration/colo.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-)migration/colo.c +17
-1@@ -59,6 +59,8 @@ static bool colo_runstate_is_stopped(void)static void secondary_vm_do_failover (void ) { +/* COLO needs enable block-replication */ +#ifdef CONFIG_REPLICATION int old_state;MigrationIncomingState *mis =migration_incoming_get_current ();Error *local_err =NULL ;@@ -121,10 +123,14 @@ static void secondary_vm_do_failover(void)if (mis->migration_incoming_co) {qemu_coroutine_enter (mis->migration_incoming_co); } +#else +abort (); +#endif }static void primary_vm_do_failover (void ) { +#ifdef CONFIG_REPLICATION MigrationState *s =migrate_get_current ();int old_state;Error *local_err =NULL ;@@ -165,6 +171,9 @@ static void primary_vm_do_failover(void)/* Notify COLO thread that failover work is finished */ qemu_sem_post (&s->colo_exit_sem); +#else +abort (); +#endif }COLOMode get_colo_mode (void )@@ -373,6 +382,7 @@ static int colo_do_checkpoint_transaction(MigrationState *s, QIOChannelBuffer *bioc, QEMUFile *fb) { +#ifdef CONFIG_REPLICATION Error *local_err =NULL ;int ret =-1 ;@@ -483,6 +493,9 @@ out: error_report_err(local_err); }return ret; +#else +abort (); +#endif }static void colo_compare_notify_checkpoint (Notifier *notifier,void *data)@@ -790,13 +803,16 @@ void *colo_process_incoming_thread(void *opaque)qemu_mutex_unlock_iothread (); goto out; } +#ifdef CONFIG_REPLICATION /* discard colo disk buffer */ replication_do_checkpoint_all (&local_err);if (local_err) {qemu_mutex_unlock_iothread (); goto out; } - +#else +abort (); +#endif /* Notify all filters of all NIC to do checkpoint */ colo_notify_filters_event (COLO_EVENT_CHECKPOINT , &local_err);Signature · 1 line
2.17.GIT
--
Dr. David Alan Gilbert / [email protected] / Manchester, UK
Quoted 11 lines · Dr. David Alan Gilbert
Quoted 5 lines · * Zhang Chen ([email protected]) wrote:
This compilation issue will occur when user use --disable-replication to config Qemu.
Reported-by Thomas Huth <[email protected]>Signed-off-by Zhang Chen <[email protected]>OK; do we need to add a check to
migrate_caps_checkto stop you enabling colo in this case?
Make sense, I will send another patch latter.
Thanks
Zhang Chen
Quoted 89 lines
Reviewed-by Dr. David Alan Gilbert <[email protected]>migration/colo.c static int
Quoted 43 lines
--- migration/colo.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-)migration/colo.c +9
-0@@ -59,6 +59,8 @@ static bool colo_runstate_is_stopped(void)static void secondary_vm_do_failover (void ) { +/* COLO needs enable block-replication */ +#ifdef CONFIG_REPLICATION int old_state;MigrationIncomingState *mis =migration_incoming_get_current ();Error *local_err =NULL ;@@ -121,10 +123,14 @@ static void secondary_vm_do_failover(void)if (mis->migration_incoming_co) {qemu_coroutine_enter (mis->migration_incoming_co); } +#else +abort (); +#endif }static void primary_vm_do_failover (void ) { +#ifdef CONFIG_REPLICATION MigrationState *s =migrate_get_current ();int old_state;Error *local_err =NULL ;@@ -165,6 +171,9 @@ static void primary_vm_do_failover(void)/* Notify COLO thread that failover work is finished */ qemu_sem_post (&s->colo_exit_sem); +#else +abort (); +#endif }COLOMode get_colo_mode (void )@@ -373,6 +382,7 @@ static intcolo_do_checkpoint_transaction(MigrationState *s,
Quoted 8 lines
migration/colo.c +1
-0QIOChannelBuffer *bioc, QEMUFile *fb) { +#ifdef CONFIG_REPLICATION Error *local_err =NULL ;int ret =-1 ;migration/colo.c out: · line 501
Quoted 9 lines
migration/colo.c +3
-0@@ -483,6 +493,9 @@ out:error_report_err (local_err); }return ret; +#else +abort (); +#endif } static void colo_compare_notify_checkpoint(Notifier *notifier, void*data)
Quoted 19 lines
migration/colo.c +4
-2@@ -790,13 +803,16 @@ void *colo_process_incoming_thread(void *opaque)qemu_mutex_unlock_iothread (); goto out; } +#ifdef CONFIG_REPLICATION /* discard colo disk buffer */ replication_do_checkpoint_all (&local_err);if (local_err) {qemu_mutex_unlock_iothread (); goto out; } - +#else +abort (); +#endif /* Notify all filters of all NIC to do checkpoint */ colo_notify_filters_event (COLO_EVENT_CHECKPOINT , &local_err); --Quoted 2 lines
2.17.GIT
--
Dr. David Alan Gilbert / [email protected] / Manchester, UK
Quoted 5 lines · * Zhang Chen ([email protected]) wrote:
This compilation issue will occur when user use --disable-replication to config Qemu.
Reported-by Thomas Huth <[email protected]>Signed-off-by Zhang Chen <[email protected]>
Queued.
Quoted 81 lines
--- migration/colo.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-)migration/colo.c +17
-1@@ -59,6 +59,8 @@ static bool colo_runstate_is_stopped(void)static void secondary_vm_do_failover (void ) { +/* COLO needs enable block-replication */ +#ifdef CONFIG_REPLICATION int old_state;MigrationIncomingState *mis =migration_incoming_get_current ();Error *local_err =NULL ;@@ -121,10 +123,14 @@ static void secondary_vm_do_failover(void)if (mis->migration_incoming_co) {qemu_coroutine_enter (mis->migration_incoming_co); } +#else +abort (); +#endif }static void primary_vm_do_failover (void ) { +#ifdef CONFIG_REPLICATION MigrationState *s =migrate_get_current ();int old_state;Error *local_err =NULL ;@@ -165,6 +171,9 @@ static void primary_vm_do_failover(void)/* Notify COLO thread that failover work is finished */ qemu_sem_post (&s->colo_exit_sem); +#else +abort (); +#endif }COLOMode get_colo_mode (void )@@ -373,6 +382,7 @@ static int colo_do_checkpoint_transaction(MigrationState *s, QIOChannelBuffer *bioc, QEMUFile *fb) { +#ifdef CONFIG_REPLICATION Error *local_err =NULL ;int ret =-1 ;@@ -483,6 +493,9 @@ out: error_report_err(local_err); }return ret; +#else +abort (); +#endif }static void colo_compare_notify_checkpoint (Notifier *notifier,void *data)@@ -790,13 +803,16 @@ void *colo_process_incoming_thread(void *opaque)qemu_mutex_unlock_iothread (); goto out; } +#ifdef CONFIG_REPLICATION /* discard colo disk buffer */ replication_do_checkpoint_all (&local_err);if (local_err) {qemu_mutex_unlock_iothread (); goto out; } - +#else +abort (); +#endif /* Notify all filters of all NIC to do checkpoint */ colo_notify_filters_event (COLO_EVENT_CHECKPOINT , &local_err);Signature · 1 line
2.17.GIT
--
Dr. David Alan Gilbert / [email protected] / Manchester, UK
Quoted 8 lines · * Dr. David Alan Gilbert ([email protected]) wrote:
Quoted 5 lines · * Zhang Chen ([email protected]) wrote:
This compilation issue will occur when user use --disable-replication to config Qemu.
Reported-by Thomas Huth <[email protected]>Signed-off-by Zhang Chen <[email protected]>Queued.
Unqueued; this still isn't building for me with replication disabled; I'm hitting one problem where the compiler is complaining that colo_send_message_value is unused, and then I'm hitting a bunch of link time errors.
This needs a few more fixes first.
Dave
Quoted 78 lines
Quoted 78 lines
--- migration/colo.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-)migration/colo.c +17
-1@@ -59,6 +59,8 @@ static bool colo_runstate_is_stopped(void)static void secondary_vm_do_failover (void ) { +/* COLO needs enable block-replication */ +#ifdef CONFIG_REPLICATION int old_state;MigrationIncomingState *mis =migration_incoming_get_current ();Error *local_err =NULL ;@@ -121,10 +123,14 @@ static void secondary_vm_do_failover(void)if (mis->migration_incoming_co) {qemu_coroutine_enter (mis->migration_incoming_co); } +#else +abort (); +#endif }static void primary_vm_do_failover (void ) { +#ifdef CONFIG_REPLICATION MigrationState *s =migrate_get_current ();int old_state;Error *local_err =NULL ;@@ -165,6 +171,9 @@ static void primary_vm_do_failover(void)/* Notify COLO thread that failover work is finished */ qemu_sem_post (&s->colo_exit_sem); +#else +abort (); +#endif }COLOMode get_colo_mode (void )@@ -373,6 +382,7 @@ static int colo_do_checkpoint_transaction(MigrationState *s, QIOChannelBuffer *bioc, QEMUFile *fb) { +#ifdef CONFIG_REPLICATION Error *local_err =NULL ;int ret =-1 ;@@ -483,6 +493,9 @@ out: error_report_err(local_err); }return ret; +#else +abort (); +#endif }static void colo_compare_notify_checkpoint (Notifier *notifier,void *data)@@ -790,13 +803,16 @@ void *colo_process_incoming_thread(void *opaque)qemu_mutex_unlock_iothread (); goto out; } +#ifdef CONFIG_REPLICATION /* discard colo disk buffer */ replication_do_checkpoint_all (&local_err);if (local_err) {qemu_mutex_unlock_iothread (); goto out; } - +#else +abort (); +#endif /* Notify all filters of all NIC to do checkpoint */ colo_notify_filters_event (COLO_EVENT_CHECKPOINT , &local_err);
Quoted 5 lines
Quoted 3 lines
Signature · 1 line
2.17.GIT--
Dr. David Alan Gilbert / [email protected] / Manchester, UK
--
Dr. David Alan Gilbert / [email protected] / Manchester, UK
Quoted 8 lines · Dr. David Alan Gilbert
Quoted 7 lines · * Dr. David Alan Gilbert ([email protected]) wrote:
Quoted 5 lines · * Zhang Chen ([email protected]) wrote:
This compilation issue will occur when user use --disable-replication to config Qemu.
Reported-by Thomas Huth <[email protected]>Signed-off-by Zhang Chen <[email protected]>
Quoted 9 lines
Quoted 1 line
Queued.
Unqueued; this still isn't building for me with replication disabled; I'm hitting one problem where the compiler is complaining that
colo_send_message_valueis unused, and then I'm hitting a bunch of link time errors.This needs a few more fixes first.
Sorry, my test machine's gcc version(5.4.0) is too old to catch this error. I will fix it and send the V2 patch.
Thanks
Zhang Chen
Quoted 91 lines
Dave
Quoted 41 lines
Quoted 41 lines
--- migration/colo.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-)migration/colo.c +9
-0@@ -59,6 +59,8 @@ static bool colo_runstate_is_stopped(void)static void secondary_vm_do_failover (void ) { +/* COLO needs enable block-replication */ +#ifdef CONFIG_REPLICATION int old_state;MigrationIncomingState *mis =migration_incoming_get_current ();Error *local_err =NULL ;@@ -121,10 +123,14 @@ static void secondary_vm_do_failover(void)if (mis->migration_incoming_co) {qemu_coroutine_enter (mis->migration_incoming_co); } +#else +abort (); +#endif }static void primary_vm_do_failover (void ) { +#ifdef CONFIG_REPLICATION MigrationState *s =migrate_get_current ();int old_state;Error *local_err =NULL ;@@ -165,6 +171,9 @@ static void primary_vm_do_failover(void)/* Notify COLO thread that failover work is finished */ qemu_sem_post (&s->colo_exit_sem); +#else +abort (); +#endif }Quoted 2 lines
migration/colo.c static int
Quoted 2 lines
migration/colo.c +0
-0COLOMode get_colo_mode (void )@@ -373,6 +382,7 @@ static intcolo_do_checkpoint_transaction(MigrationState *s,
Quoted 16 lines
Quoted 16 lines
migration/colo.c +4
-0QIOChannelBuffer *bioc, QEMUFile *fb) { +#ifdef CONFIG_REPLICATION Error *local_err =NULL ;int ret =-1 ;@@ -483,6 +493,9 @@ out: error_report_err(local_err); }return ret; +#else +abort (); +#endif }Quoted 1 line
migration/colo.c out: · line 501
Quoted 1 line
migration/colo.c +0
-0static void colo_compare_notify_checkpoint(Notifier *notifier, void*data)
Quoted 18 lines
Quoted 18 lines
migration/colo.c +4
-1@@ -790,13 +803,16 @@ void *colo_process_incoming_thread(void *opaque)qemu_mutex_unlock_iothread (); goto out; } +#ifdef CONFIG_REPLICATION /* discard colo disk buffer */ replication_do_checkpoint_all (&local_err);if (local_err) {qemu_mutex_unlock_iothread (); goto out; } - +#else +abort (); +#endif /* Notify all filters of all NIC to do checkpoint */ colo_notify_filters_event (COLO_EVENT_CHECKPOINT , &local_err);Quoted 5 lines
Quoted 3 lines
--
2.17.GIT--
Dr. David Alan Gilbert / [email protected] / Manchester, UK--
Dr. David Alan Gilbert / [email protected] / Manchester, UK