[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 4/5] Disable XBZRLE during migrate to file if it is
From: |
Orit Wasserman |
Subject: |
[Qemu-devel] [PATCH 4/5] Disable XBZRLE during migrate to file if it is active |
Date: |
Wed, 30 Jan 2013 12:35:57 +0200 |
XBZRLE is not effective when migrating to file.
Disabling it automatically will remove the need to update the
command line to allow loading a guest from a file that was in XBZRLE format.
Signed-off-by: Orit Wasserman <address@hidden>
---
include/migration/migration.h | 1 +
migration-exec.c | 6 ++++++
migration.c | 9 +++++++++
3 files changed, 16 insertions(+)
diff --git a/include/migration/migration.h b/include/migration/migration.h
index a8c9639..8577a0f 100644
--- a/include/migration/migration.h
+++ b/include/migration/migration.h
@@ -129,6 +129,7 @@ int xbzrle_encode_buffer(uint8_t *old_buf, uint8_t
*new_buf, int slen,
int xbzrle_decode_buffer(uint8_t *src, int slen, uint8_t *dst, int dlen);
int migrate_use_xbzrle(void);
+void migrate_disable_xbzrle(void);
int64_t migrate_xbzrle_cache_size(void);
int64_t xbzrle_cache_resize(int64_t new_size);
diff --git a/migration-exec.c b/migration-exec.c
index a051a6e..98ba41a 100644
--- a/migration-exec.c
+++ b/migration-exec.c
@@ -61,6 +61,12 @@ void exec_start_outgoing_migration(MigrationState *s, const
char *command, Error
{
FILE *f;
+ /* there is no point in using XBZRLE when migrating to file */
+ if (migrate_use_xbzrle()) {
+ DPRINTF("XBZRLE active during migrate to file - disabling\n");
+ migrate_disable_xbzrle();
+ }
+
f = popen(command, "w");
if (f == NULL) {
error_setg_errno(errp, errno, "failed to popen the migration target");
diff --git a/migration.c b/migration.c
index 77c1971..e32635e 100644
--- a/migration.c
+++ b/migration.c
@@ -510,6 +510,15 @@ int migrate_use_xbzrle(void)
return s->enabled_capabilities[MIGRATION_CAPABILITY_XBZRLE];
}
+void migrate_disable_xbzrle(void)
+{
+ MigrationState *s;
+
+ s = migrate_get_current();
+
+ s->enabled_capabilities[MIGRATION_CAPABILITY_XBZRLE] = false;
+}
+
int64_t migrate_xbzrle_cache_size(void)
{
MigrationState *s;
--
1.7.11.7
[Qemu-devel] [PATCH 5/5] Fix error message in migrate_set_capability HMP command, Orit Wasserman, 2013/01/30