Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
migration/rdma: Check for postcopy sooner
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>
  • Loading branch information
Juan Quintela committed May 4, 2023
1 parent 8c90815 commit cd01a60
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions migration/rdma.c
Expand Up @@ -3234,6 +3234,10 @@ static size_t qemu_rdma_save_page(QEMUFile *f,
RDMAContext *rdma;
int ret;

if (migration_in_postcopy()) {
return RAM_SAVE_CONTROL_NOT_SUPP;
}

RCU_READ_LOCK_GUARD();
rdma = qatomic_rcu_read(&rioc->rdmaout);

Expand All @@ -3243,10 +3247,6 @@ static size_t qemu_rdma_save_page(QEMUFile *f,

CHECK_ERROR_STATE();

if (migration_in_postcopy()) {
return RAM_SAVE_CONTROL_NOT_SUPP;
}

qemu_fflush(f);

/*
Expand Down Expand Up @@ -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) {
Expand All @@ -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);
Expand All @@ -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) {
Expand All @@ -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);

Expand Down

0 comments on commit cd01a60

Please sign in to comment.