[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 13/26] Fail more cleanly in mismatched RAM cases
From: |
Juan Quintela |
Subject: |
[Qemu-devel] [PULL 13/26] Fail more cleanly in mismatched RAM cases |
Date: |
Wed, 1 Jul 2015 12:39:37 +0200 |
From: "Dr. David Alan Gilbert" <address@hidden>
If the number of RAMBlocks was different on the source from the
destination, QEMU would hang waiting for a disconnect on the source
and wouldn't release from that hang until the destination was manually
killed.
Mark the stream as being in error, this causes the destination to die
and the source to carry on.
(It still gets a whole bunch of warnings on the destination, and I've
not managed to complete another migration after the 1st one, still
progress).
Signed-off-by: Dr. David Alan Gilbert <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
---
migration/rdma.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/migration/rdma.c b/migration/rdma.c
index 73a79be..f106b2a 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -3328,6 +3328,7 @@ static int qemu_rdma_registration_stop(QEMUFile *f, void
*opaque,
"Your QEMU command line parameters are probably "
"not identical on both the source and destination.",
local->nb_blocks, nb_dest_blocks);
+ rdma->error_state = -EINVAL;
return -EINVAL;
}
@@ -3343,6 +3344,7 @@ static int qemu_rdma_registration_stop(QEMUFile *f, void
*opaque,
"vs %" PRIu64, local->block[i].block_name, i,
local->block[i].length,
rdma->dest_blocks[i].length);
+ rdma->error_state = -EINVAL;
return -EINVAL;
}
local->block[i].remote_host_addr =
--
2.4.3
- [Qemu-devel] [PULL 07/26] Translate offsets to destination address space, (continued)
- [Qemu-devel] [PULL 07/26] Translate offsets to destination address space, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 05/26] rdma typos, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 09/26] Allow rdma_delete_block to work without the hash, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 08/26] Rework ram_control_load_hook to hook during block load, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 11/26] Sort destination RAMBlocks to be the same as the source, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 12/26] Sanity check RDMA remote data, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 10/26] Rework ram block hash, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 14/26] Fix older machine type compatibility on power with section footers, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 15/26] runstate: Add runstate store, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 16/26] runstate: migration allows more transitions now, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 13/26] Fail more cleanly in mismatched RAM cases,
Juan Quintela <=
- [Qemu-devel] [PULL 17/26] migration: create new section to store global state, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 18/26] global_state: Make section optional, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 20/26] migration: Add configuration section, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 21/26] migration: Use cmpxchg correctly, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 19/26] vmstate: Create optional sections, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 22/26] migration: ensure we start in NONE state, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 23/26] migration: Use always helper to set state, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 25/26] migration: create migration event, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 26/26] migration: Add migration events on target side, Juan Quintela, 2015/07/01
- [Qemu-devel] [PULL 24/26] migration: No need to call trace_migrate_set_state(), Juan Quintela, 2015/07/01