summary refs log tree commit diff stats
path: root/migration/qemu-file.c
diff options
context:
space:
mode:
authorLidong Chen <jemmy858585@gmail.com>2018-08-06 21:29:27 +0800
committerJuan Quintela <quintela@redhat.com>2018-08-22 12:12:07 +0200
commitccb7e1b5a6f4a6fac98be38f16d96fc48db69103 (patch)
tree4e4a884eae4b74b8c366d0319779cf1c931a147d /migration/qemu-file.c
parent4cbc9c7ffd95d2702cf7ffb3bfdf3f1f0ffdca07 (diff)
downloadfocaccia-qemu-ccb7e1b5a6f4a6fac98be38f16d96fc48db69103.tar.gz
focaccia-qemu-ccb7e1b5a6f4a6fac98be38f16d96fc48db69103.zip
migration: disable RDMA WRITE after postcopy started
RDMA WRITE operations are performed with no notification to the destination
qemu, then the destination qemu can not wakeup. This patch disable RDMA WRITE
after postcopy started.

Signed-off-by: Lidong Chen <lidongchen@tencent.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration/qemu-file.c')
-rw-r--r--migration/qemu-file.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/migration/qemu-file.c b/migration/qemu-file.c
index 0463f4c321..977b9ae07c 100644
--- a/migration/qemu-file.c
+++ b/migration/qemu-file.c
@@ -253,8 +253,12 @@ size_t ram_control_save_page(QEMUFile *f, ram_addr_t block_offset,
     if (f->hooks && f->hooks->save_page) {
         int ret = f->hooks->save_page(f, f->opaque, block_offset,
                                       offset, size, bytes_sent);
-        f->bytes_xfer += size;
-        if (ret != RAM_SAVE_CONTROL_DELAYED) {
+        if (ret != RAM_SAVE_CONTROL_NOT_SUPP) {
+            f->bytes_xfer += size;
+        }
+
+        if (ret != RAM_SAVE_CONTROL_DELAYED &&
+            ret != RAM_SAVE_CONTROL_NOT_SUPP) {
             if (bytes_sent && *bytes_sent > 0) {
                 qemu_update_position(f, *bytes_sent);
             } else if (ret < 0) {