* [PATCH v5 0/3] COLO: improve build options
@ 2023-05-15 13:06 Vladimir Sementsov-Ogievskiy
2023-05-15 13:06 ` [PATCH v5 1/3] configure: add --disable-colo-proxy option Vladimir Sementsov-Ogievskiy
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2023-05-15 13:06 UTC (permalink / raw)
To: qemu-devel
Cc: jasowang, philmd, thuth, berrange, marcandre.lureau, pbonzini,
leobras, peterx, quintela, zhanghailiang, chen.zhang,
lukasstraub2, vsementsov
Hi all!
Most patches merged, thanks to Juan!
Here is remaining three patches.
01: update commit msg, add r-b by Zhang,
- patch is unrelated to 02-03, may be merged in separate
02: fix missed invocation in migration/rdma.c
03: fix reversed assertion
Vladimir Sementsov-Ogievskiy (3):
configure: add --disable-colo-proxy option
migration: split migration_incoming_co
migration: process_incoming_migration_co(): move colo part to colo
include/migration/colo.h | 9 +++++++-
meson_options.txt | 2 ++
migration/colo.c | 43 ++++++++++++++++++++++++++++++++---
migration/migration.c | 30 ++++--------------------
migration/migration.h | 9 +++++++-
migration/rdma.c | 5 ++--
net/meson.build | 13 ++++++++---
scripts/meson-buildoptions.sh | 3 +++
stubs/colo-compare.c | 7 ++++++
stubs/colo.c | 6 ++---
stubs/meson.build | 1 +
11 files changed, 88 insertions(+), 40 deletions(-)
create mode 100644 stubs/colo-compare.c
--
2.34.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v5 1/3] configure: add --disable-colo-proxy option
2023-05-15 13:06 [PATCH v5 0/3] COLO: improve build options Vladimir Sementsov-Ogievskiy
@ 2023-05-15 13:06 ` Vladimir Sementsov-Ogievskiy
2023-05-15 13:06 ` [PATCH v5 2/3] migration: split migration_incoming_co Vladimir Sementsov-Ogievskiy
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2023-05-15 13:06 UTC (permalink / raw)
To: qemu-devel
Cc: jasowang, philmd, thuth, berrange, marcandre.lureau, pbonzini,
leobras, peterx, quintela, zhanghailiang, chen.zhang,
lukasstraub2, vsementsov
Add option to not build filter-rewriter and colo-compare when
they are not needed.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Zhang Chen <chen.zhang@intel.com>
---
meson_options.txt | 2 ++
net/meson.build | 13 ++++++++++---
scripts/meson-buildoptions.sh | 3 +++
stubs/colo-compare.c | 7 +++++++
stubs/meson.build | 1 +
5 files changed, 23 insertions(+), 3 deletions(-)
create mode 100644 stubs/colo-compare.c
diff --git a/meson_options.txt b/meson_options.txt
index d8330a1f71..7db5709a00 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -291,6 +291,8 @@ option('live_block_migration', type: 'feature', value: 'auto',
description: 'block migration in the main migration stream')
option('replication', type: 'feature', value: 'auto',
description: 'replication support')
+option('colo_proxy', type: 'feature', value: 'auto',
+ description: 'colo-proxy support')
option('bochs', type: 'feature', value: 'auto',
description: 'bochs image format support')
option('cloop', type: 'feature', value: 'auto',
diff --git a/net/meson.build b/net/meson.build
index 87afca3e93..6f4ecde57f 100644
--- a/net/meson.build
+++ b/net/meson.build
@@ -1,13 +1,10 @@
softmmu_ss.add(files(
'announce.c',
'checksum.c',
- 'colo-compare.c',
- 'colo.c',
'dump.c',
'eth.c',
'filter-buffer.c',
'filter-mirror.c',
- 'filter-rewriter.c',
'filter.c',
'hub.c',
'net-hmp-cmds.c',
@@ -19,6 +16,16 @@ softmmu_ss.add(files(
'util.c',
))
+if get_option('replication').allowed() or \
+ get_option('colo_proxy').allowed()
+ softmmu_ss.add(files('colo-compare.c'))
+ softmmu_ss.add(files('colo.c'))
+endif
+
+if get_option('colo_proxy').allowed()
+ softmmu_ss.add(files('filter-rewriter.c'))
+endif
+
softmmu_ss.add(when: 'CONFIG_TCG', if_true: files('filter-replay.c'))
if have_l2tpv3
diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
index 2805d1c145..d845d61a0a 100644
--- a/scripts/meson-buildoptions.sh
+++ b/scripts/meson-buildoptions.sh
@@ -86,6 +86,7 @@ meson_options_help() {
printf "%s\n" ' capstone Whether and how to find the capstone library'
printf "%s\n" ' cloop cloop image format support'
printf "%s\n" ' cocoa Cocoa user interface (macOS only)'
+ printf "%s\n" ' colo-proxy colo-proxy support'
printf "%s\n" ' coreaudio CoreAudio sound support'
printf "%s\n" ' crypto-afalg Linux AF_ALG crypto backend driver'
printf "%s\n" ' curl CURL block device driver'
@@ -243,6 +244,8 @@ _meson_option_parse() {
--disable-cloop) printf "%s" -Dcloop=disabled ;;
--enable-cocoa) printf "%s" -Dcocoa=enabled ;;
--disable-cocoa) printf "%s" -Dcocoa=disabled ;;
+ --enable-colo-proxy) printf "%s" -Dcolo_proxy=enabled ;;
+ --disable-colo-proxy) printf "%s" -Dcolo_proxy=disabled ;;
--enable-coreaudio) printf "%s" -Dcoreaudio=enabled ;;
--disable-coreaudio) printf "%s" -Dcoreaudio=disabled ;;
--enable-coroutine-pool) printf "%s" -Dcoroutine_pool=true ;;
diff --git a/stubs/colo-compare.c b/stubs/colo-compare.c
new file mode 100644
index 0000000000..ec726665be
--- /dev/null
+++ b/stubs/colo-compare.c
@@ -0,0 +1,7 @@
+#include "qemu/osdep.h"
+#include "qemu/notify.h"
+#include "net/colo-compare.h"
+
+void colo_compare_cleanup(void)
+{
+}
diff --git a/stubs/meson.build b/stubs/meson.build
index 8412cad15f..a56645e2f7 100644
--- a/stubs/meson.build
+++ b/stubs/meson.build
@@ -46,6 +46,7 @@ stub_ss.add(files('target-monitor-defs.c'))
stub_ss.add(files('trace-control.c'))
stub_ss.add(files('uuid.c'))
stub_ss.add(files('colo.c'))
+stub_ss.add(files('colo-compare.c'))
stub_ss.add(files('vmstate.c'))
stub_ss.add(files('vm-stop.c'))
stub_ss.add(files('win32-kbd-hook.c'))
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v5 2/3] migration: split migration_incoming_co
2023-05-15 13:06 [PATCH v5 0/3] COLO: improve build options Vladimir Sementsov-Ogievskiy
2023-05-15 13:06 ` [PATCH v5 1/3] configure: add --disable-colo-proxy option Vladimir Sementsov-Ogievskiy
@ 2023-05-15 13:06 ` Vladimir Sementsov-Ogievskiy
2023-05-15 13:57 ` Juan Quintela
2023-05-15 13:06 ` [PATCH v5 3/3] migration: process_incoming_migration_co(): move colo part to colo Vladimir Sementsov-Ogievskiy
2023-05-15 14:55 ` [PATCH v5 0/3] COLO: improve build options Juan Quintela
3 siblings, 1 reply; 7+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2023-05-15 13:06 UTC (permalink / raw)
To: qemu-devel
Cc: jasowang, philmd, thuth, berrange, marcandre.lureau, pbonzini,
leobras, peterx, quintela, zhanghailiang, chen.zhang,
lukasstraub2, vsementsov
Originally, migration_incoming_co was introduced by
25d0c16f625feb3b6
"migration: Switch to COLO process after finishing loadvm"
to be able to enter from COLO code to one specific yield point, added
by 25d0c16f625feb3b6.
Later in 923709896b1b0
"migration: poll the cm event for destination qemu"
we reused this variable to wake the migration incoming coroutine from
RDMA code.
That was doubtful idea. Entering coroutines is a very fragile thing:
you should be absolutely sure which yield point you are going to enter.
I don't know how much is it safe to enter during qemu_loadvm_state()
which I think what RDMA want to do. But for sure RDMA shouldn't enter
the special COLO-related yield-point. As well, COLO code doesn't want
to enter during qemu_loadvm_state(), it want to enter it's own specific
yield-point.
As well, when in 8e48ac95865ac97d
"COLO: Add block replication into colo process" we added
bdrv_invalidate_cache_all() call (now it's called activate_all())
it became possible to enter the migration incoming coroutine during
that call which is wrong too.
So, let't make these things separate and disjoint: loadvm_co for RDMA,
non-NULL during qemu_loadvm_state(), and colo_incoming_co for COLO,
non-NULL only around specific yield.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
---
migration/colo.c | 4 ++--
migration/migration.c | 8 ++++++--
migration/migration.h | 9 ++++++++-
migration/rdma.c | 5 ++---
4 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/migration/colo.c b/migration/colo.c
index 6c7c313956..a688ac553a 100644
--- a/migration/colo.c
+++ b/migration/colo.c
@@ -145,8 +145,8 @@ static void secondary_vm_do_failover(void)
qemu_sem_post(&mis->colo_incoming_sem);
/* For Secondary VM, jump to incoming co */
- if (mis->migration_incoming_co) {
- qemu_coroutine_enter(mis->migration_incoming_co);
+ if (mis->colo_incoming_co) {
+ qemu_coroutine_enter(mis->colo_incoming_co);
}
}
diff --git a/migration/migration.c b/migration/migration.c
index 439e8651df..e66b06d3ec 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -520,12 +520,14 @@ process_incoming_migration_co(void *opaque)
goto fail;
}
- mis->migration_incoming_co = qemu_coroutine_self();
mis->largest_page_size = qemu_ram_pagesize_largest();
postcopy_state_set(POSTCOPY_INCOMING_NONE);
migrate_set_state(&mis->state, MIGRATION_STATUS_NONE,
MIGRATION_STATUS_ACTIVE);
+
+ mis->loadvm_co = qemu_coroutine_self();
ret = qemu_loadvm_state(mis->from_src_file);
+ mis->loadvm_co = NULL;
ps = postcopy_state_get();
trace_process_incoming_migration_co_end(ret, ps);
@@ -566,7 +568,10 @@ process_incoming_migration_co(void *opaque)
qemu_thread_create(&colo_incoming_thread, "COLO incoming",
colo_process_incoming_thread, mis, QEMU_THREAD_JOINABLE);
+
+ mis->colo_incoming_co = qemu_coroutine_self();
qemu_coroutine_yield();
+ mis->colo_incoming_co = NULL;
qemu_mutex_unlock_iothread();
/* Wait checkpoint incoming thread exit before free resource */
@@ -578,7 +583,6 @@ process_incoming_migration_co(void *opaque)
mis->bh = qemu_bh_new(process_incoming_migration_bh, mis);
qemu_bh_schedule(mis->bh);
- mis->migration_incoming_co = NULL;
return;
fail:
local_err = NULL;
diff --git a/migration/migration.h b/migration/migration.h
index 7721c7658b..48a46123a0 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -162,8 +162,15 @@ struct MigrationIncomingState {
int state;
+ /*
+ * The incoming migration coroutine, non-NULL during qemu_loadvm_state().
+ * Used to wake the migration incoming coroutine from rdma code. How much is
+ * it safe - it's a question.
+ */
+ Coroutine *loadvm_co;
+
/* The coroutine we should enter (back) after failover */
- Coroutine *migration_incoming_co;
+ Coroutine *colo_incoming_co;
QemuSemaphore colo_incoming_sem;
/*
diff --git a/migration/rdma.c b/migration/rdma.c
index 2cd8f1cc66..2e4dcff1c9 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -3342,9 +3342,8 @@ static void rdma_cm_poll_handler(void *opaque)
}
}
rdma_ack_cm_event(cm_event);
-
- if (mis->migration_incoming_co) {
- qemu_coroutine_enter(mis->migration_incoming_co);
+ if (mis->loadvm_co) {
+ qemu_coroutine_enter(mis->loadvm_co);
}
return;
}
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v5 3/3] migration: process_incoming_migration_co(): move colo part to colo
2023-05-15 13:06 [PATCH v5 0/3] COLO: improve build options Vladimir Sementsov-Ogievskiy
2023-05-15 13:06 ` [PATCH v5 1/3] configure: add --disable-colo-proxy option Vladimir Sementsov-Ogievskiy
2023-05-15 13:06 ` [PATCH v5 2/3] migration: split migration_incoming_co Vladimir Sementsov-Ogievskiy
@ 2023-05-15 13:06 ` Vladimir Sementsov-Ogievskiy
2023-05-15 14:52 ` Juan Quintela
2023-05-15 14:55 ` [PATCH v5 0/3] COLO: improve build options Juan Quintela
3 siblings, 1 reply; 7+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2023-05-15 13:06 UTC (permalink / raw)
To: qemu-devel
Cc: jasowang, philmd, thuth, berrange, marcandre.lureau, pbonzini,
leobras, peterx, quintela, zhanghailiang, chen.zhang,
lukasstraub2, vsementsov
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>
---
include/migration/colo.h | 9 ++++++++-
migration/colo.c | 39 ++++++++++++++++++++++++++++++++++++++-
migration/migration.c | 28 ++--------------------------
stubs/colo.c | 6 ++----
4 files changed, 50 insertions(+), 32 deletions(-)
diff --git a/include/migration/colo.h b/include/migration/colo.h
index 7ef315473e..eaac07f26d 100644
--- a/include/migration/colo.h
+++ b/include/migration/colo.h
@@ -28,7 +28,6 @@ bool migration_in_colo_state(void);
int migration_incoming_enable_colo(void);
void migration_incoming_disable_colo(void);
bool migration_incoming_colo_enabled(void);
-void *colo_process_incoming_thread(void *opaque);
bool migration_incoming_in_colo_state(void);
COLOMode get_colo_mode(void);
@@ -44,5 +43,13 @@ void colo_do_failover(void);
*/
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
diff --git a/migration/colo.c b/migration/colo.c
index a688ac553a..72f4f7b37e 100644
--- a/migration/colo.c
+++ b/migration/colo.c
@@ -817,7 +817,7 @@ void colo_shutdown(void)
}
}
-void *colo_process_incoming_thread(void *opaque)
+static void *colo_process_incoming_thread(void *opaque)
{
MigrationIncomingState *mis = opaque;
QEMUFile *fb = NULL;
@@ -918,3 +918,40 @@ out:
rcu_unregister_thread();
return NULL;
}
+
+int coroutine_fn colo_incoming_co(void)
+{
+ MigrationIncomingState *mis = migration_incoming_get_current();
+ Error *local_err = NULL;
+ QemuThread th;
+
+ assert(qemu_mutex_iothread_locked());
+
+ if (!migration_incoming_colo_enabled()) {
+ return 0;
+ }
+
+ /* Make sure all file formats throw away their mutable metadata */
+ bdrv_activate_all(&local_err);
+ if (local_err) {
+ error_report_err(local_err);
+ return -EINVAL;
+ }
+
+ qemu_thread_create(&th, "COLO incoming", colo_process_incoming_thread,
+ mis, QEMU_THREAD_JOINABLE);
+
+ mis->colo_incoming_co = qemu_coroutine_self();
+ qemu_coroutine_yield();
+ mis->colo_incoming_co = NULL;
+
+ qemu_mutex_unlock_iothread();
+ /* Wait checkpoint incoming thread exit before free resource */
+ qemu_thread_join(&th);
+ qemu_mutex_lock_iothread();
+
+ /* We hold the global iothread lock, so it is safe here */
+ colo_release_ram_cache();
+
+ return 0;
+}
diff --git a/migration/migration.c b/migration/migration.c
index e66b06d3ec..9d1896d6af 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -511,7 +511,6 @@ process_incoming_migration_co(void *opaque)
MigrationIncomingState *mis = migration_incoming_get_current();
PostcopyState ps;
int ret;
- Error *local_err = NULL;
assert(mis->from_src_file);
@@ -555,37 +554,14 @@ process_incoming_migration_co(void *opaque)
goto fail;
}
- /* we get COLO info, and know if we are in COLO mode */
- if (migration_incoming_colo_enabled()) {
- QemuThread colo_incoming_thread;
-
- /* Make sure all file formats throw away their mutable metadata */
- bdrv_activate_all(&local_err);
- if (local_err) {
- error_report_err(local_err);
- goto fail;
- }
-
- qemu_thread_create(&colo_incoming_thread, "COLO incoming",
- colo_process_incoming_thread, mis, QEMU_THREAD_JOINABLE);
-
- mis->colo_incoming_co = qemu_coroutine_self();
- qemu_coroutine_yield();
- mis->colo_incoming_co = NULL;
-
- qemu_mutex_unlock_iothread();
- /* Wait checkpoint incoming thread exit before free resource */
- qemu_thread_join(&colo_incoming_thread);
- qemu_mutex_lock_iothread();
- /* We hold the global iothread lock, so it is safe here */
- colo_release_ram_cache();
+ if (colo_incoming_co() < 0) {
+ goto fail;
}
mis->bh = qemu_bh_new(process_incoming_migration_bh, mis);
qemu_bh_schedule(mis->bh);
return;
fail:
- local_err = NULL;
migrate_set_state(&mis->state, MIGRATION_STATUS_ACTIVE,
MIGRATION_STATUS_FAILED);
qemu_fclose(mis->from_src_file);
diff --git a/stubs/colo.c b/stubs/colo.c
index cf9816d368..f33379d0fd 100644
--- a/stubs/colo.c
+++ b/stubs/colo.c
@@ -10,11 +10,9 @@ void colo_shutdown(void)
{
}
-void *colo_process_incoming_thread(void *opaque)
+int coroutine_fn colo_incoming_co(void)
{
- error_report("Impossible happend: trying to start COLO thread when COLO "
- "module is not built in");
- abort();
+ return 0;
}
void colo_checkpoint_delay_set(void)
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v5 2/3] migration: split migration_incoming_co
2023-05-15 13:06 ` [PATCH v5 2/3] migration: split migration_incoming_co Vladimir Sementsov-Ogievskiy
@ 2023-05-15 13:57 ` Juan Quintela
0 siblings, 0 replies; 7+ messages in thread
From: Juan Quintela @ 2023-05-15 13:57 UTC (permalink / raw)
To: Vladimir Sementsov-Ogievskiy
Cc: qemu-devel, jasowang, philmd, thuth, berrange, marcandre.lureau,
pbonzini, leobras, peterx, zhanghailiang, chen.zhang,
lukasstraub2
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> wrote:
> Originally, migration_incoming_co was introduced by
> 25d0c16f625feb3b6
> "migration: Switch to COLO process after finishing loadvm"
> to be able to enter from COLO code to one specific yield point, added
> by 25d0c16f625feb3b6.
>
> Later in 923709896b1b0
> "migration: poll the cm event for destination qemu"
> we reused this variable to wake the migration incoming coroutine from
> RDMA code.
>
> That was doubtful idea. Entering coroutines is a very fragile thing:
> you should be absolutely sure which yield point you are going to enter.
>
> I don't know how much is it safe to enter during qemu_loadvm_state()
> which I think what RDMA want to do. But for sure RDMA shouldn't enter
> the special COLO-related yield-point. As well, COLO code doesn't want
> to enter during qemu_loadvm_state(), it want to enter it's own specific
> yield-point.
>
> As well, when in 8e48ac95865ac97d
> "COLO: Add block replication into colo process" we added
> bdrv_invalidate_cache_all() call (now it's called activate_all())
> it became possible to enter the migration incoming coroutine during
> that call which is wrong too.
>
> So, let't make these things separate and disjoint: loadvm_co for RDMA,
> non-NULL during qemu_loadvm_state(), and colo_incoming_co for COLO,
> non-NULL only around specific yield.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Juan Quintela <quintela@redhat.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v5 3/3] migration: process_incoming_migration_co(): move colo part to colo
2023-05-15 13:06 ` [PATCH v5 3/3] migration: process_incoming_migration_co(): move colo part to colo Vladimir Sementsov-Ogievskiy
@ 2023-05-15 14:52 ` Juan Quintela
0 siblings, 0 replies; 7+ messages in thread
From: Juan Quintela @ 2023-05-15 14:52 UTC (permalink / raw)
To: Vladimir Sementsov-Ogievskiy
Cc: qemu-devel, jasowang, philmd, thuth, berrange, marcandre.lureau,
pbonzini, leobras, peterx, zhanghailiang, chen.zhang,
lukasstraub2
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> wrote:
> 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>
Independent of this patch, I still wonder if moving incoming migration
from a coroutine to a thread makes sense. On one hand:
- it would simplify (a bit) the already complex code
- it would make a bit better in non-multifd migrations, right now, if we
put enough networking, the botleneck is the migration incoming
coroutine.
On the other hand:
- We would have to work with bottom handlers (as the outgoing migration
does)
- With multifd enabled, the amount of data that is sent through the
main migration channel is just a few MB, so not that it is going to
improve a lot.
So, it is not clear to me what to do here.
Later, Juan.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v5 0/3] COLO: improve build options
2023-05-15 13:06 [PATCH v5 0/3] COLO: improve build options Vladimir Sementsov-Ogievskiy
` (2 preceding siblings ...)
2023-05-15 13:06 ` [PATCH v5 3/3] migration: process_incoming_migration_co(): move colo part to colo Vladimir Sementsov-Ogievskiy
@ 2023-05-15 14:55 ` Juan Quintela
3 siblings, 0 replies; 7+ messages in thread
From: Juan Quintela @ 2023-05-15 14:55 UTC (permalink / raw)
To: Vladimir Sementsov-Ogievskiy
Cc: qemu-devel, jasowang, philmd, thuth, berrange, marcandre.lureau,
pbonzini, leobras, peterx, zhanghailiang, chen.zhang,
lukasstraub2
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> wrote:
> Hi all!
Hi
Queued the three patches for the next migration pull request.
Thanks.
>
> Most patches merged, thanks to Juan!
>
> Here is remaining three patches.
>
> 01: update commit msg, add r-b by Zhang,
> - patch is unrelated to 02-03, may be merged in separate
>
> 02: fix missed invocation in migration/rdma.c
> 03: fix reversed assertion
>
> Vladimir Sementsov-Ogievskiy (3):
> configure: add --disable-colo-proxy option
> migration: split migration_incoming_co
> migration: process_incoming_migration_co(): move colo part to colo
>
> include/migration/colo.h | 9 +++++++-
> meson_options.txt | 2 ++
> migration/colo.c | 43 ++++++++++++++++++++++++++++++++---
> migration/migration.c | 30 ++++--------------------
> migration/migration.h | 9 +++++++-
> migration/rdma.c | 5 ++--
> net/meson.build | 13 ++++++++---
> scripts/meson-buildoptions.sh | 3 +++
> stubs/colo-compare.c | 7 ++++++
> stubs/colo.c | 6 ++---
> stubs/meson.build | 1 +
> 11 files changed, 88 insertions(+), 40 deletions(-)
> create mode 100644 stubs/colo-compare.c
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-05-15 14:55 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-15 13:06 [PATCH v5 0/3] COLO: improve build options Vladimir Sementsov-Ogievskiy
2023-05-15 13:06 ` [PATCH v5 1/3] configure: add --disable-colo-proxy option Vladimir Sementsov-Ogievskiy
2023-05-15 13:06 ` [PATCH v5 2/3] migration: split migration_incoming_co Vladimir Sementsov-Ogievskiy
2023-05-15 13:57 ` Juan Quintela
2023-05-15 13:06 ` [PATCH v5 3/3] migration: process_incoming_migration_co(): move colo part to colo Vladimir Sementsov-Ogievskiy
2023-05-15 14:52 ` Juan Quintela
2023-05-15 14:55 ` [PATCH v5 0/3] COLO: improve build options Juan Quintela
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).