[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 6/6] migration/rdma: Send error during cancelling
From: |
Dr. David Alan Gilbert (git) |
Subject: |
[Qemu-devel] [PATCH v4 6/6] migration/rdma: Send error during cancelling |
Date: |
Mon, 17 Jul 2017 12:09:36 +0100 |
From: "Dr. David Alan Gilbert" <address@hidden>
When we issue a cancel and clean up the RDMA channel
send a CONTROL_ERROR to get the destination to quit.
The rdma_cleanup code waits for the event to come back
from the rdma_disconnect; but that wont happen until the
destination quits and there's currently nothing to force
it.
Note this makes the case of a cancel work while the destination
is alive, and it already works if the destination is
truly dead. Note it doesn't fix the case where the destination
is hung (we get stuck waiting for the rdma_disconnect event).
Signed-off-by: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Peter Xu <address@hidden>
---
migration/rdma.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/migration/rdma.c b/migration/rdma.c
index 972167d899..ca56594328 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -2269,7 +2269,9 @@ static void qemu_rdma_cleanup(RDMAContext *rdma)
int ret, idx;
if (rdma->cm_id && rdma->connected) {
- if (rdma->error_state && !rdma->received_error) {
+ if ((rdma->error_state ||
+ migrate_get_current()->state == MIGRATION_STATUS_CANCELLING) &&
+ !rdma->received_error) {
RDMAControlHeader head = { .len = 0,
.type = RDMA_CONTROL_ERROR,
.repeat = 1,
--
2.13.0
- [Qemu-devel] [PATCH v4 1/6] migration/rdma: Fix race on source, (continued)
- [Qemu-devel] [PATCH v4 1/6] migration/rdma: Fix race on source, Dr. David Alan Gilbert (git), 2017/07/17
- [Qemu-devel] [PATCH v4 3/6] migration/rdma: fix qemu_rdma_block_for_wrid error paths, Dr. David Alan Gilbert (git), 2017/07/17
- [Qemu-devel] [PATCH v4 2/6] migration: Close file on failed migration load, Dr. David Alan Gilbert (git), 2017/07/17
- [Qemu-devel] [PATCH v4 4/6] migration/rdma: Allow cancelling while waiting for wrid, Dr. David Alan Gilbert (git), 2017/07/17
- [Qemu-devel] [PATCH v4 5/6] migration/rdma: Safely convert control types, Dr. David Alan Gilbert (git), 2017/07/17
- [Qemu-devel] [PATCH v4 6/6] migration/rdma: Send error during cancelling,
Dr. David Alan Gilbert (git) <=