summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuan Quintela2019-01-04 19:12:35 +0100
committerJuan Quintela2019-03-25 18:13:37 +0100
commitad24c7cb595e7ff3df17f7db790e2a7dfaf8040c (patch)
treeb4b279e6a9a62b686595af998914604deb9cf1f5
parentMerge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20190325'... (diff)
downloadqemu-ad24c7cb595e7ff3df17f7db790e2a7dfaf8040c.tar.gz
qemu-ad24c7cb595e7ff3df17f7db790e2a7dfaf8040c.tar.xz
qemu-ad24c7cb595e7ff3df17f7db790e2a7dfaf8040c.zip
multifd: Only send pages when packet are not empty
We send packages without pages sometimes for sysnchronizanion. The iov functions do the right thing, but we will be changing this code in future patches. Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
-rw-r--r--migration/ram.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/migration/ram.c b/migration/ram.c
index 35bd6213e9..3034f862c1 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -1088,9 +1088,12 @@ static void *multifd_send_thread(void *opaque)
break;
}
- ret = qio_channel_writev_all(p->c, p->pages->iov, used, &local_err);
- if (ret != 0) {
- break;
+ if (used) {
+ ret = qio_channel_writev_all(p->c, p->pages->iov,
+ used, &local_err);
+ if (ret != 0) {
+ break;
+ }
}
qemu_mutex_lock(&p->mutex);
@@ -1317,9 +1320,12 @@ static void *multifd_recv_thread(void *opaque)
p->num_pages += used;
qemu_mutex_unlock(&p->mutex);
- ret = qio_channel_readv_all(p->c, p->pages->iov, used, &local_err);
- if (ret != 0) {
- break;
+ if (used) {
+ ret = qio_channel_readv_all(p->c, p->pages->iov,
+ used, &local_err);
+ if (ret != 0) {
+ break;
+ }
}
if (flags & MULTIFD_FLAG_SYNC) {