Skip to contentSkip to conversation

replication: Make --disable-replication compile

PATCH In review Peter Xu 3 participants 4 messages Nov 14, 2018

lore
Share & tools
lore

Peter Xu

author
#0 lore raw

PATCH 1/1 replication: Make --disable-replication compile

We've fixed it before like 38bb54f323 ("replication: Make --disable-replication compile again", 2017-04-28) but it's failing again. So fix it again.

There could be even cleaner way to fix this but current way is the simplest. Let's start from simple.

CC zhanghailiang <[email protected]>
CC Juan Quintela <[email protected]>
CC "Dr. David Alan Gilbert" <[email protected]>
CC Peter Maydell <[email protected]>
CC Yanan Fu <[email protected]>
CC Markus Armbruster <[email protected]>
---
 migration/colo.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
migration/colo.c +23 -0
index 956ac236b7..78b64ef0cb 100644
@@ -33,8 +33,10 @@
 #include "sysemu/cpus.h"
 #include "net/filter.h"
 
+#ifdef CONFIG_REPLICATION
 static bool vmstate_loading;
 static Notifier packets_compare_notifier;
+#endif
 
 #define COLO_BUFFER_BASE_SIZE (4 * 1024 * 1024)
 
@@ -59,6 +61,7 @@ static bool colo_runstate_is_stopped(void)
 
 static void secondary_vm_do_failover(void)
 {
+#ifdef CONFIG_REPLICATION
     int old_state;
     MigrationIncomingState *mis = migration_incoming_get_current();
     Error *local_err = NULL;
@@ -121,10 +124,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 +172,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)
@@ -271,6 +281,8 @@ COLOStatus *qmp_query_colo_status(Error **errp)
     return s;
 }
 
+#ifdef CONFIG_REPLICATION
+
 static void colo_send_message(QEMUFile *f, COLOMessage msg,
                               Error **errp)
 {
@@ -489,9 +501,11 @@ static void colo_compare_notify_checkpoint(Notifier *notifier, void *data)
 {
     colo_checkpoint_notify(data);
 }
+#endif
 
 static void colo_process_checkpoint(MigrationState *s)
 {
+#ifdef CONFIG_REPLICATION
     QIOChannelBuffer *bioc;
     QEMUFile *fb = NULL;
     int64_t current_time = qemu_clock_get_ms(QEMU_CLOCK_HOST);
@@ -603,6 +617,9 @@ out:
     if (s->rp_state.from_dst_file) {
         qemu_fclose(s->rp_state.from_dst_file);
     }
+#else
+    abort();
+#endif
 }
 
 void colo_checkpoint_notify(void *opaque)
@@ -631,6 +648,7 @@ void migrate_start_colo_process(MigrationState *s)
     qemu_mutex_lock_iothread();
 }
 
+#ifdef CONFIG_REPLICATION
 static void colo_wait_handle_message(QEMUFile *f, int *checkpoint_request,
                                      Error **errp)
 {
@@ -653,9 +671,11 @@ static void colo_wait_handle_message(QEMUFile *f, int *checkpoint_request,
         break;
     }
 }
+#endif
 
 void *colo_process_incoming_thread(void *opaque)
 {
+#ifdef CONFIG_REPLICATION
     MigrationIncomingState *mis = opaque;
     QEMUFile *fb = NULL;
     QIOChannelBuffer *bioc = NULL; /* Cache incoming device state */
@@ -859,4 +879,7 @@ out:
 
     rcu_unregister_thread();
     return NULL;
+#else
+    abort();
+#endif
 }
Signature · 1 line
2.17.1
#1 lore raw
Quoted 6 lines · * Peter Xu ([email protected]) wrote:

We've fixed it before like 38bb54f323 ("replication: Make --disable-replication compile again", 2017-04-28) but it's failing again. So fix it again.

There could be even cleaner way to fix this but current way is the simplest. Let's start from simple.

This is I think the same as the patch posted 1st November:
Fix compilation issue when disable replication

Dave

Quoted 122 lines
CC zhanghailiang <[email protected]>
CC Juan Quintela <[email protected]>
CC "Dr. David Alan Gilbert" <[email protected]>
CC Peter Maydell <[email protected]>
CC Yanan Fu <[email protected]>
CC Markus Armbruster <[email protected]>
---
 migration/colo.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
migration/colo.c +23 -0
index 956ac236b7..78b64ef0cb 100644
@@ -33,8 +33,10 @@
 #include "sysemu/cpus.h"
 #include "net/filter.h"
 
+#ifdef CONFIG_REPLICATION
 static bool vmstate_loading;
 static Notifier packets_compare_notifier;
+#endif
 
 #define COLO_BUFFER_BASE_SIZE (4 * 1024 * 1024)
 
@@ -59,6 +61,7 @@ static bool colo_runstate_is_stopped(void)
 
 static void secondary_vm_do_failover(void)
 {
+#ifdef CONFIG_REPLICATION
     int old_state;
     MigrationIncomingState *mis = migration_incoming_get_current();
     Error *local_err = NULL;
@@ -121,10 +124,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 +172,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)
@@ -271,6 +281,8 @@ COLOStatus *qmp_query_colo_status(Error **errp)
     return s;
 }
 
+#ifdef CONFIG_REPLICATION
+
 static void colo_send_message(QEMUFile *f, COLOMessage msg,
                               Error **errp)
 {
@@ -489,9 +501,11 @@ static void colo_compare_notify_checkpoint(Notifier *notifier, void *data)
 {
     colo_checkpoint_notify(data);
 }
+#endif
 
 static void colo_process_checkpoint(MigrationState *s)
 {
+#ifdef CONFIG_REPLICATION
     QIOChannelBuffer *bioc;
     QEMUFile *fb = NULL;
     int64_t current_time = qemu_clock_get_ms(QEMU_CLOCK_HOST);
@@ -603,6 +617,9 @@ out:
     if (s->rp_state.from_dst_file) {
         qemu_fclose(s->rp_state.from_dst_file);
     }
+#else
+    abort();
+#endif
 }
 
 void colo_checkpoint_notify(void *opaque)
@@ -631,6 +648,7 @@ void migrate_start_colo_process(MigrationState *s)
     qemu_mutex_lock_iothread();
 }
 
+#ifdef CONFIG_REPLICATION
 static void colo_wait_handle_message(QEMUFile *f, int *checkpoint_request,
                                      Error **errp)
 {
@@ -653,9 +671,11 @@ static void colo_wait_handle_message(QEMUFile *f, int *checkpoint_request,
         break;
     }
 }
+#endif
 
 void *colo_process_incoming_thread(void *opaque)
 {
+#ifdef CONFIG_REPLICATION
     MigrationIncomingState *mis = opaque;
     QEMUFile *fb = NULL;
     QIOChannelBuffer *bioc = NULL; /* Cache incoming device state */
@@ -859,4 +879,7 @@ out:
 
     rcu_unregister_thread();
     return NULL;
+#else
+    abort();
+#endif
 }
Signature · 1 line
2.17.1

--
Dr. David Alan Gilbert / [email protected] / Manchester, UK

author
#2 lore raw
Quoted 10 lines · Dr. David Alan Gilbert
Quoted 6 lines · * Peter Xu ([email protected]) wrote:

We've fixed it before like 38bb54f323 ("replication: Make --disable-replication compile again", 2017-04-28) but it's failing again. So fix it again.

There could be even cleaner way to fix this but current way is the simplest. Let's start from simple.

This is I think the same as the patch posted 1st November:
Fix compilation issue when disable replication

Yep, thanks for pointing out. Please ignore this patch.

Regards,

Signature · 1 line
Peter Xu
#3 lore raw
In reply to Peter Xu
Quoted 3 lines · Peter Xu

We've fixed it before like 38bb54f323 ("replication: Make --disable-replication compile again", 2017-04-28) but it's failing again. So fix it again.

If replication builds by default and you want to defend it not building then it would probably be worth adding it to the disabled configs in .travis.yml:

- CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-uuid --disable-libusb --disable-user"

Quoted 116 lines

There could be even cleaner way to fix this but current way is the simplest. Let's start from simple.

CC zhanghailiang <[email protected]>
CC Juan Quintela <[email protected]>
CC "Dr. David Alan Gilbert" <[email protected]>
CC Peter Maydell <[email protected]>
CC Yanan Fu <[email protected]>
CC Markus Armbruster <[email protected]>
---
 migration/colo.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
migration/colo.c +20 -0
index 956ac236b7..78b64ef0cb 100644
@@ -33,8 +33,10 @@
 #include "sysemu/cpus.h"
 #include "net/filter.h"
 
+#ifdef CONFIG_REPLICATION
 static bool vmstate_loading;
 static Notifier packets_compare_notifier;
+#endif
 
 #define COLO_BUFFER_BASE_SIZE (4 * 1024 * 1024)
 
@@ -59,6 +61,7 @@ static bool colo_runstate_is_stopped(void)
 
 static void secondary_vm_do_failover(void)
 {
+#ifdef CONFIG_REPLICATION
     int old_state;
     MigrationIncomingState *mis = migration_incoming_get_current();
     Error *local_err = NULL;
@@ -121,10 +124,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 +172,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)
@@ -271,6 +281,8 @@ COLOStatus *qmp_query_colo_status(Error **errp)
     return s;
 }
 
+#ifdef CONFIG_REPLICATION
+
 static void colo_send_message(QEMUFile *f, COLOMessage msg,
                               Error **errp)
 {
@@ -489,9 +501,11 @@ static void colo_compare_notify_checkpoint(Notifier *notifier, void *data)
 {
     colo_checkpoint_notify(data);
 }
+#endif
 
 static void colo_process_checkpoint(MigrationState *s)
 {
+#ifdef CONFIG_REPLICATION
     QIOChannelBuffer *bioc;
     QEMUFile *fb = NULL;
     int64_t current_time = qemu_clock_get_ms(QEMU_CLOCK_HOST);
@@ -603,6 +617,9 @@ out:
     if (s->rp_state.from_dst_file) {
         qemu_fclose(s->rp_state.from_dst_file);
     }
+#else
+    abort();
+#endif
 }
 
 void colo_checkpoint_notify(void *opaque)
@@ -631,6 +648,7 @@ void migrate_start_colo_process(MigrationState *s)
     qemu_mutex_lock_iothread();
 }
 
+#ifdef CONFIG_REPLICATION
 static void colo_wait_handle_message(QEMUFile *f, int *checkpoint_request,
                                      Error **errp)
 {
@@ -653,9 +671,11 @@ static void colo_wait_handle_message(QEMUFile *f, int *checkpoint_request,
         break;
     }
 }
+#endif
 
 void *colo_process_incoming_thread(void *opaque)
 {
+#ifdef CONFIG_REPLICATION
     MigrationIncomingState *mis = opaque;
     QEMUFile *fb = NULL;
     QIOChannelBuffer *bioc = NULL; /* Cache incoming device state */

migration/colo.c out: · line 885

Quoted 7 lines
migration/colo.c +3 -0
@@ -859,4 +879,7 @@ out:
 
     rcu_unregister_thread();
     return NULL;
+#else
+    abort();
+#endif
 }

--
Alex Bennée