Signed-off-by: Zhimin Feng
---
migration/multifd.c | 6 ++
migration/rdma.c| 5 ++---
migration/rdma.h| 1 +
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/migration/multifd.c b/migration/multifd.c
index ba5e0b11d0..886c8e1271 100644
--- a/migration/multifd.c
+++ b
All data is sent by multifd Channels, so we only register its for
multifd channels and main channel don't register its.
Signed-off-by: Zhimin Feng
---
migration/rdma.c | 7 +++
1 file changed, 7 insertions(+)
diff --git a/migration/rdma.c b/migration/rdma.c
index eb7c2edbe7..b7b56
In both sides. We still don't transmit anything through them,
and we only build the RDMA connections.
Signed-off-by: Zhimin Feng
---
migration/multifd.c | 103 ---
migration/multifd.h | 10
migration/rdma.c
Transmit initial packet through the multifd RDMA channels,
so that we can identify the multifd channels.
Signed-off-by: Zhimin Feng
---
migration/multifd.c | 33 +
migration/rdma.c| 2 ++
2 files changed, 23 insertions(+), 12 deletions(-)
diff --git a
Signed-off-by: Zhimin Feng
---
migration/rdma.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/migration/rdma.c b/migration/rdma.c
index 873c17dc03..eb7c2edbe7 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -1749,7 +1749,7 @@ static int qemu_rdma_write_one
Signed-off-by: Zhimin Feng
---
migration/multifd.c | 15
migration/rdma.c| 58 +
migration/rdma.h| 2 ++
3 files changed, 70 insertions(+), 5 deletions(-)
diff --git a/migration/multifd.c b/migration/multifd.c
index c986d4c247
register memory for multifd RDMA channels and transmit the destination
the keys to source to use including the virtual addresses.
Signed-off-by: Zhimin Feng
---
migration/multifd.c | 34 +---
migration/rdma.c| 48 +
2
Hi
This is a version against current code. It is based on the multifd work.
we can use the multifd parameters for rdma transport. All data is
transported by the multifd RDMA channels and the main channel is only
used to distribute its to the different multifd channels.
Zhimin Feng (14
Add the 'qemu_rdma_registration' function,
multifd send threads call it to register memory.
Signed-off-by: Zhimin Feng
---
migration/rdma.c | 51
migration/rdma.h | 1 +
2 files changed, 52 insertions(+)
diff --git a/migratio
We need to use the RDMAContext in migration/multifd.c
so it has to be exported.
Signed-off-by: Zhimin Feng
---
migration/rdma.c | 243 --
migration/rdma.h | 247 +++
2 files changed, 247 insertions(+), 243
Signed-off-by: Zhimin Feng
---
migration/migration.c | 10 ++
migration/migration.h | 1 +
2 files changed, 11 insertions(+)
diff --git a/migration/migration.c b/migration/migration.c
index 10a13e0c79..819089a7ea 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -107,6
Signed-off-by: Zhimin Feng
---
migration/multifd.c | 6 ++
migration/rdma.c| 17 +
2 files changed, 23 insertions(+)
diff --git a/migration/multifd.c b/migration/multifd.c
index 4ae25fc88f..c986d4c247 100644
--- a/migration/multifd.c
+++ b/migration/multifd.c
@@ -389,6
Signed-off-by: Zhimin Feng
---
migration/rdma.c | 25 +
migration/rdma.h | 16
2 files changed, 21 insertions(+), 20 deletions(-)
diff --git a/migration/rdma.c b/migration/rdma.c
index 2f1e69197f..23f7f525f4 100644
--- a/migration/rdma.c
+++ b/migration
Creation of the multifd send threads for RDMA migration,
nothing inside yet.
Signed-off-by: Zhimin Feng
---
migration/multifd.c | 33 +---
migration/multifd.h | 2 +
migration/qemu-file.c | 5 +++
migration/qemu-file.h | 1 +
migration/rdma.c | 88
Signed-off-by: Zhimin Feng
---
migration/migration.c | 9 +
migration/migration.h | 1 +
2 files changed, 10 insertions(+)
diff --git a/migration/migration.c b/migration/migration.c
index 3a21a4686c..10a13e0c79 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -2208,6
If the migration is cancelled when it is in the completion phase,
the migration state is set to MIGRATION_STATUS_CANCELLING.
The VM maybe wait for the 'pause_sem' semaphore in migration_maybe_pause
function, so that VM always is paused.
Reported-by: Euler Robot
Signed-off-by: Z
n (argc=, argv=,
envp=) at vl.c:4471
If the multifd_send_threads is not created when migration is failed.
In this senario, we don't call multifd_save_cleanup in
multifd_new_send_channel_async.
Signed-off-by: Zhimin Feng
---
migration/ram.c | 10 +-
1 file changed, 9 insertions(+)
From: fengzhimin
The virt-ram block is sent by MultiRDMA, so we only register it for
MultiRDMA channels and main channel don't register the virt-ram block.
Signed-off-by: fengzhimin
---
migration/rdma.c | 140 +--
1 file changed, 112 insertions(+), 2
From: fengzhimin
Currently there is a single channel for RDMA migration, this causes
the problem that the network bandwidth is not fully utilized for
25Gigabit NIC. Inspired by the Multifd, we use two RDMA channels to
send RAM pages, which we call MultiRDMA.
We compare the migration performance
From: fengzhimin
Creation of the RDMA threads, nothing inside yet.
Signed-off-by: fengzhimin
---
migration/migration.c | 1 +
migration/migration.h | 2 +
migration/rdma.c | 283 ++
3 files changed, 286 insertions(+)
diff --git a/migration/migr
From: fengzhimin
In both sides. We still don't transmit anything through them,
and we only build the RDMA connections.
Signed-off-by: fengzhimin
---
migration/rdma.c | 253 +--
1 file changed, 223 insertions(+), 30 deletions(-)
diff --git a/migratio
From: fengzhimin
Send the RAM block through MultiRDMA channels for using rdma-pin-all option,
and we choose the channel to send data through polling the MultiRDMA thread.
Signed-off-by: fengzhimin
---
migration/rdma.c | 66 +---
1 file changed, 63 in
From: fengzhimin
Transmit initial package through the multiRDMA channels,
so that we can identify the main channel and multiRDMA channels.
Signed-off-by: fengzhimin
---
migration/rdma.c | 114 ---
1 file changed, 107 insertions(+), 7 deletions(-)
di
From: fengzhimin
Signed-off-by: fengzhimin
---
migration/rdma.c | 23 +++
1 file changed, 23 insertions(+)
diff --git a/migration/rdma.c b/migration/rdma.c
index 6ecc870844..425dfa709d 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -439,6 +439,10 @@ struct {
M
From: fengzhimin
We need to build all multiRDMA channels before we start migration.
Signed-off-by: fengzhimin
---
migration/rdma.c | 44 ++--
1 file changed, 42 insertions(+), 2 deletions(-)
diff --git a/migration/rdma.c b/migration/rdma.c
index db75a43
From: fengzhimin
Signed-off-by: fengzhimin
---
migration/rdma.c | 109 +--
1 file changed, 105 insertions(+), 4 deletions(-)
diff --git a/migration/rdma.c b/migration/rdma.c
index 36261f1fc8..0a150099e2 100644
--- a/migration/rdma.c
+++ b/migration/r
From: fengzhimin
Signed-off-by: fengzhimin
---
migration/migration.c | 11 +++
migration/migration.h | 1 +
qapi/migration.json | 4 +++-
3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/migration/migration.c b/migration/migration.c
index 354ad072fa..e98e236ef9 100644
From: fengzhimin
Indicates the number of RDMA threads that we would create.
By default we create 2 threads for RDMA migration.
Signed-off-by: fengzhimin
---
migration/migration.c | 32
migration/migration.h | 1 +
monitor/hmp-cmds.c| 7 +++
qapi/migra
From: fengzhimin
We need to call the 'migration_incoming_setup' function in migration/rdma.c,
so it has to be changed to a global function.
Signed-off-by: fengzhimin
---
migration/migration.c | 11 ++-
migration/migration.h | 2 ++
2 files changed, 12 insertions(+), 1 deletion(-)
dif
From: fengzhimin
register memory for multiRDMA channels and transmit the destination
the keys to source to use including the virtual addresses.
Signed-off-by: fengzhimin
---
migration/rdma.c | 192 ++-
1 file changed, 190 insertions(+), 2 deletions(-
30 matches
Mail list logo