[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH V2] migration/colo.c: Fix compilation issue when
From: |
Thomas Huth |
Subject: |
Re: [Qemu-devel] [PATCH V2] migration/colo.c: Fix compilation issue when disable replication |
Date: |
Wed, 14 Nov 2018 12:06:14 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
On 2018-11-14 11:47, Peter Xu wrote:
> On Thu, Nov 01, 2018 at 10:12:26AM +0800, Zhang Chen wrote:
>> This compilation issue will occur when user use --disable-replication
>> to config Qemu.
>>
>> Reported-by: Thomas Huth <address@hidden>
>> Signed-off-by: Zhang Chen <address@hidden>
>
> Hi,
>
> How's the status of this patch? Are we gonna merge it for 3.1?
>
> I just posted a similar one without knowing this (until Dave pointed
> it out). IMHO it can be a good candidate for 3.1.
Maybe Peter Maydell could apply this directly to the repo as a built fix?
And maybe one of our docker wizards could add a test to check
compilation with everything disabled a la:
./configure --enable-werror --disable-tcg --disable-slirp \
--disable-libxml2 --disable-capstone --disable-live-block-migration \
--disable-glusterfs --disable-replication --disable-coroutine-pool \
--disable-smartcard --disable-guest-agent --disable-curses \
--disable-curl --disable-tpm --disable-qom-cast-debug \
--disable-spice --disable-vhost-vsock --disable-vhost-net \
--disable-vhost-crypto --disable-vhost-user
?
I don't use docker (yet), but I've had this in my gitlab ci patch,
that's how I noticed this problem (see
https://www.mail-archive.com/address@hidden/msg559990.html)
Thomas
>
>> ---
>> migration/colo.c | 28 +++++++++++++++++++++++++++-
>> 1 file changed, 27 insertions(+), 1 deletion(-)
>>
>> diff --git a/migration/colo.c b/migration/colo.c
>> index 956ac236b7..fcff04c78c 100644
>> --- a/migration/colo.c
>> +++ b/migration/colo.c
>> @@ -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)
>> @@ -415,11 +424,16 @@ static int
>> colo_do_checkpoint_transaction(MigrationState *s,
>> /* Disable block migration */
>> migrate_set_block_enabled(false, &local_err);
>> qemu_mutex_lock_iothread();
>> +
>> +#ifdef CONFIG_REPLICATION
>> replication_do_checkpoint_all(&local_err);
>> if (local_err) {
>> qemu_mutex_unlock_iothread();
>> goto out;
>> }
>> +#else
>> + abort();
>> +#endif
>>
>> colo_send_message(s->to_dst_file, COLO_MESSAGE_VMSTATE_SEND,
>> &local_err);
>> if (local_err) {
>> @@ -523,11 +537,15 @@ static void colo_process_checkpoint(MigrationState *s)
>> object_unref(OBJECT(bioc));
>>
>> qemu_mutex_lock_iothread();
>> +#ifdef CONFIG_REPLICATION
>> replication_start_all(REPLICATION_MODE_PRIMARY, &local_err);
>> if (local_err) {
>> qemu_mutex_unlock_iothread();
>> goto out;
>> }
>> +#else
>> + abort();
>> +#endif
>>
>> vm_start();
>> qemu_mutex_unlock_iothread();
>> @@ -690,11 +708,15 @@ void *colo_process_incoming_thread(void *opaque)
>> object_unref(OBJECT(bioc));
>>
>> qemu_mutex_lock_iothread();
>> +#ifdef CONFIG_REPLICATION
>> replication_start_all(REPLICATION_MODE_SECONDARY, &local_err);
>> if (local_err) {
>> qemu_mutex_unlock_iothread();
>> goto out;
>> }
>> +#else
>> + abort();
>> +#endif
>> vm_start();
>> trace_colo_vm_state_change("stop", "run");
>> qemu_mutex_unlock_iothread();
>> @@ -785,18 +807,22 @@ void *colo_process_incoming_thread(void *opaque)
>> goto out;
>> }
>>
>> +#ifdef CONFIG_REPLICATION
>> replication_get_error_all(&local_err);
>> if (local_err) {
>> qemu_mutex_unlock_iothread();
>> goto out;
>> }
>> +
>> /* 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);
>>
>> --
>> 2.17.1
>>
>>
>
> Regards,
>
- Re: [Qemu-devel] [PATCH V2] migration/colo.c: Fix compilation issue when disable replication, Thomas Huth, 2018/11/05
- Re: [Qemu-devel] [PATCH V2] migration/colo.c: Fix compilation issue when disable replication, Peter Xu, 2018/11/14
- Re: [Qemu-devel] [PATCH V2] migration/colo.c: Fix compilation issue when disable replication,
Thomas Huth <=
- Re: [Qemu-devel] [PATCH V2] migration/colo.c: Fix compilation issue when disable replication, Peter Maydell, 2018/11/14
- Re: [Qemu-devel] [PATCH V2] migration/colo.c: Fix compilation issue when disable replication, Zhang Chen, 2018/11/14
- Re: [Qemu-devel] [PATCH V2] migration/colo.c: Fix compilation issue when disable replication, Peter Xu, 2018/11/14
- Re: [Qemu-devel] [PATCH V2] migration/colo.c: Fix compilation issue when disable replication, Dr. David Alan Gilbert, 2018/11/16
- Re: [Qemu-devel] [PATCH V2] migration/colo.c: Fix compilation issue when disable replication, Zhang Chen, 2018/11/17
Re: [Qemu-devel] [PATCH V2] migration/colo.c: Fix compilation issue when disable replication, Dr. David Alan Gilbert, 2018/11/21