From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Juan Quintela <quintela@redhat.com>,
Leonardo Bras <leobras@redhat.com>, Peter Xu <peterx@redhat.com>
Subject: [PATCH 5/5] migration/rdma: Check for postcopy sooner
Date: Thu, 4 May 2023 13:44:43 +0200 [thread overview]
Message-ID: <20230504114443.23891-6-quintela@redhat.com> (raw)
In-Reply-To: <20230504114443.23891-1-quintela@redhat.com>
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>
---
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
next prev parent reply other threads:[~2023-05-04 11:46 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-04 11:44 [PATCH 0/5] Migration RDMA cleanup Juan Quintela
2023-05-04 11:44 ` [PATCH 1/5] migration: Make RAM_SAVE_FLAG_HOOK a normal case entry Juan Quintela
2023-05-04 17:03 ` Daniel P. Berrangé
2023-05-26 21:09 ` Peter Xu
2023-05-04 11:44 ` [PATCH 2/5] migration/rdma: simplify ram_control_load_hook() Juan Quintela
2023-05-04 17:03 ` Daniel P. Berrangé
2023-05-26 21:10 ` Peter Xu
2023-05-04 11:44 ` [PATCH 3/5] migration/rdma: We can calculate the rioc from the QEMUFile Juan Quintela
2023-05-04 17:04 ` Daniel P. Berrangé
2023-05-26 21:10 ` Peter Xu
2023-05-04 11:44 ` [PATCH 4/5] migration/rdma: It makes no sense to recive that flag without RDMA Juan Quintela
2023-05-04 17:05 ` Daniel P. Berrangé
2023-05-04 22:53 ` Juan Quintela
2023-05-26 21:15 ` Peter Xu
2023-05-04 11:44 ` Juan Quintela [this message]
2023-05-04 17:05 ` [PATCH 5/5] migration/rdma: Check for postcopy sooner Daniel P. Berrangé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230504114443.23891-6-quintela@redhat.com \
--to=quintela@redhat.com \
--cc=leobras@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).