From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: aliguori@us.ibm.com
Subject: [Qemu-devel] [PATCH 08/13] migration: move beginning stage to the migration thread
Date: Thu, 17 Jan 2013 14:39:28 +0100 [thread overview]
Message-ID: <1358429973-9321-9-git-send-email-quintela@redhat.com> (raw)
In-Reply-To: <1358429973-9321-1-git-send-email-quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
---
include/migration/migration.h | 1 -
migration.c | 28 +++++++++++++++-------------
2 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/include/migration/migration.h b/include/migration/migration.h
index 95261c1..a8c9639 100644
--- a/include/migration/migration.h
+++ b/include/migration/migration.h
@@ -54,7 +54,6 @@ struct MigrationState
bool enabled_capabilities[MIGRATION_CAPABILITY_MAX];
int64_t xbzrle_cache_size;
bool complete;
- bool first_time;
};
void process_incoming_migration(QEMUFile *f);
diff --git a/migration.c b/migration.c
index 380f3cb..7ae1d93 100644
--- a/migration.c
+++ b/migration.c
@@ -674,17 +674,6 @@ static bool migrate_fd_put_ready(MigrationState *s, uint64_t max_size)
qemu_mutex_unlock_iothread();
return false;
}
- if (s->first_time) {
- s->first_time = false;
- DPRINTF("beginning savevm\n");
- ret = qemu_savevm_state_begin(s->file, &s->params);
- if (ret < 0) {
- DPRINTF("failed, %d\n", ret);
- migrate_fd_error(s);
- qemu_mutex_unlock_iothread();
- return false;
- }
- }
DPRINTF("iterate\n");
pending_size = qemu_savevm_state_pending(s->file, max_size);
@@ -733,6 +722,17 @@ static void *buffered_file_thread(void *opaque)
int64_t initial_time = qemu_get_clock_ms(rt_clock);
int64_t max_size = 0;
bool last_round = false;
+ int ret;
+
+ qemu_mutex_lock_iothread();
+ DPRINTF("beginning savevm\n");
+ ret = qemu_savevm_state_begin(s->file, &s->params);
+ if (ret < 0) {
+ DPRINTF("failed, %d\n", ret);
+ qemu_mutex_unlock_iothread();
+ goto out;
+ }
+ qemu_mutex_unlock_iothread();
while (true) {
int64_t current_time = qemu_get_clock_ms(rt_clock);
@@ -768,6 +768,10 @@ static void *buffered_file_thread(void *opaque)
}
}
+out:
+ if (ret < 0) {
+ migrate_fd_error(s);
+ }
g_free(s->buffer);
return NULL;
}
@@ -789,8 +793,6 @@ void migrate_fd_connect(MigrationState *s)
s->buffer_size = 0;
s->buffer_capacity = 0;
- s->first_time = true;
-
s->xfer_limit = s->bandwidth_limit / XFER_LIMIT_RATIO;
s->complete = false;
--
1.8.1
next prev parent reply other threads:[~2013-01-17 13:39 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-17 13:39 [Qemu-devel] [PULL 00/13] thread queue Juan Quintela
2013-01-17 13:39 ` [Qemu-devel] [PATCH 01/13] Unlock ramlist lock also in error case Juan Quintela
2013-01-17 13:39 ` [Qemu-devel] [PATCH 02/13] Protect migration_bitmap_sync() with the ramlist lock Juan Quintela
2013-01-17 13:39 ` [Qemu-devel] [PATCH 03/13] use XFER_LIMIT_RATIO consistently Juan Quintela
2013-01-17 13:39 ` [Qemu-devel] [PATCH 04/13] migration: make function static Juan Quintela
2013-01-17 13:39 ` [Qemu-devel] [PATCH 05/13] migration: remove double call to migrate_fd_close Juan Quintela
2013-01-17 13:39 ` [Qemu-devel] [PATCH 06/13] migration: fix off-by-one in buffered_rate_limit Juan Quintela
2013-01-17 13:39 ` [Qemu-devel] [PATCH 07/13] qemu-file: Only set last_error if it is not already set Juan Quintela
2013-01-17 13:39 ` Juan Quintela [this message]
2013-01-17 13:39 ` [Qemu-devel] [PATCH 09/13] migration: Add buffered_flush error handling Juan Quintela
2013-01-17 13:39 ` [Qemu-devel] [PATCH 10/13] migration: move exit condition to migration thread Juan Quintela
2013-01-17 13:39 ` [Qemu-devel] [PATCH 11/13] migration: unfold rest of migrate_fd_put_ready() into thread Juan Quintela
2013-01-17 13:39 ` [Qemu-devel] [PATCH 12/13] migration: Only go to the iterate stage if there is anything to send Juan Quintela
2013-01-17 13:39 ` [Qemu-devel] [PATCH 13/13] migration: remove argument to qemu_savevm_state_cancel Juan Quintela
2013-01-17 15:22 ` [Qemu-devel] [PULL 00/13] thread queue Anthony Liguori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1358429973-9321-9-git-send-email-quintela@redhat.com \
--to=quintela@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).