summaryrefslogtreecommitdiff
path: root/arch_init.c
diff options
context:
space:
mode:
authorOrit Wasserman <owasserm@redhat.com>2012-08-06 21:42:54 +0300
committerJuan Quintela <quintela@redhat.com>2012-08-08 13:51:12 +0200
commit9e1ba4cc4e2536d9650e84e2614c5691ed45938f (patch)
tree33337a2809496c43cf6d2c68d66fcba8d61ad8db /arch_init.c
parent17ad9b358bceba78ae80f2963c6036eab726010c (diff)
downloadqemu-9e1ba4cc4e2536d9650e84e2614c5691ed45938f.zip
Add migrate_set_cache_size command
Change XBZRLE cache size in bytes (the size should be a power of 2, it will be rounded down to the nearest power of 2). If XBZRLE cache size is too small there will be many cache miss. New query-migrate-cache-size QMP command and 'info migrate_cache_size' HMP command to query cache value. Signed-off-by: Benoit Hudzia <benoit.hudzia@sap.com> Signed-off-by: Petter Svard <petters@cs.umu.se> Signed-off-by: Aidan Shribman <aidan.shribman@sap.com> Signed-off-by: Orit Wasserman <owasserm@redhat.com> Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'arch_init.c')
-rw-r--r--arch_init.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch_init.c b/arch_init.c
index 8cff9c608f..7fbfe91ad5 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -191,6 +191,16 @@ static struct {
.cache = NULL,
};
+
+int64_t xbzrle_cache_resize(int64_t new_size)
+{
+ if (XBZRLE.cache != NULL) {
+ return cache_resize(XBZRLE.cache, new_size / TARGET_PAGE_SIZE) *
+ TARGET_PAGE_SIZE;
+ }
+ return pow2floor(new_size);
+}
+
static void save_block_hdr(QEMUFile *f, RAMBlock *block, ram_addr_t offset,
int cont, int flag)
{