[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 10/16] migration/rdma: Check for postcopy sooner
From: |
Juan Quintela |
Subject: |
[PULL 10/16] migration/rdma: Check for postcopy sooner |
Date: |
Fri, 5 May 2023 02:48:06 +0200 |
It makes no sense first try to see if there is an rdma error and then
do nothing on postcopy stage. Change it so we check we are in
postcopy before doing anything.
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20230504114443.23891-6-quintela@redhat.com>
---
migration/rdma.c | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/migration/rdma.c b/migration/rdma.c
index 17c4b9206f..2cd8f1cc66 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -3234,19 +3234,19 @@ static size_t qemu_rdma_save_page(QEMUFile *f,
RDMAContext *rdma;
int ret;
- RCU_READ_LOCK_GUARD();
- rdma = qatomic_rcu_read(&rioc->rdmaout);
-
- if (!rdma) {
- return -EIO;
- }
-
- CHECK_ERROR_STATE();
-
if (migration_in_postcopy()) {
return RAM_SAVE_CONTROL_NOT_SUPP;
}
+ RCU_READ_LOCK_GUARD();
+ rdma = qatomic_rcu_read(&rioc->rdmaout);
+
+ if (!rdma) {
+ return -EIO;
+ }
+
+ CHECK_ERROR_STATE();
+
qemu_fflush(f);
/*
@@ -3866,6 +3866,10 @@ static int qemu_rdma_registration_start(QEMUFile *f,
QIOChannelRDMA *rioc = QIO_CHANNEL_RDMA(qemu_file_get_ioc(f));
RDMAContext *rdma;
+ if (migration_in_postcopy()) {
+ return 0;
+ }
+
RCU_READ_LOCK_GUARD();
rdma = qatomic_rcu_read(&rioc->rdmaout);
if (!rdma) {
@@ -3874,10 +3878,6 @@ static int qemu_rdma_registration_start(QEMUFile *f,
CHECK_ERROR_STATE();
- if (migration_in_postcopy()) {
- return 0;
- }
-
trace_qemu_rdma_registration_start(flags);
qemu_put_be64(f, RAM_SAVE_FLAG_HOOK);
qemu_fflush(f);
@@ -3897,6 +3897,10 @@ static int qemu_rdma_registration_stop(QEMUFile *f,
RDMAControlHeader head = { .len = 0, .repeat = 1 };
int ret = 0;
+ if (migration_in_postcopy()) {
+ return 0;
+ }
+
RCU_READ_LOCK_GUARD();
rdma = qatomic_rcu_read(&rioc->rdmaout);
if (!rdma) {
@@ -3905,10 +3909,6 @@ static int qemu_rdma_registration_stop(QEMUFile *f,
CHECK_ERROR_STATE();
- if (migration_in_postcopy()) {
- return 0;
- }
-
qemu_fflush(f);
ret = qemu_rdma_drain_cq(f, rdma);
--
2.40.0
- [PULL 00/16] Migration 20230505 patches, Juan Quintela, 2023/05/04
- [PULL 01/16] migration: Fix block_bitmap_mapping migration, Juan Quintela, 2023/05/04
- [PULL 03/16] migration: Document all migration_stats, Juan Quintela, 2023/05/04
- [PULL 02/16] migration/rdma: Don't pass the QIOChannelRDMA as an opaque, Juan Quintela, 2023/05/04
- [PULL 05/16] migration: Rename xbzrle_enabled xbzrle_started, Juan Quintela, 2023/05/04
- [PULL 04/16] migration: Put zero_pages in alphabetical order, Juan Quintela, 2023/05/04
- [PULL 06/16] migration: Make RAM_SAVE_FLAG_HOOK a normal case entry, Juan Quintela, 2023/05/04
- [PULL 07/16] migration/rdma: simplify ram_control_load_hook(), Juan Quintela, 2023/05/04
- [PULL 08/16] migration/rdma: We can calculate the rioc from the QEMUFile, Juan Quintela, 2023/05/04
- [PULL 09/16] migration/rdma: It makes no sense to recive that flag without RDMA, Juan Quintela, 2023/05/04
- [PULL 10/16] migration/rdma: Check for postcopy sooner,
Juan Quintela <=
- [PULL 13/16] qemu-file: No need to check for shutdown in qemu_file_rate_limit, Juan Quintela, 2023/05/04
- [PULL 12/16] migration: qemu_file_total_transferred() function is monotonic, Juan Quintela, 2023/05/04
- [PULL 11/16] migration: max_postcopy_bandwidth is a size parameter, Juan Quintela, 2023/05/04
- [PULL 14/16] qemu-file: remove shutdown member, Juan Quintela, 2023/05/04
- [PULL 15/16] qemu-file: Make total_transferred an uint64_t, Juan Quintela, 2023/05/04
- [PULL 16/16] qemu-file: Make ram_control_save_page() use accessors for rate_limit, Juan Quintela, 2023/05/04
- Re: [PULL 00/16] Migration 20230505 patches, Richard Henderson, 2023/05/05