aboutsummaryrefslogtreecommitdiff
path: root/exec.c
diff options
context:
space:
mode:
authorDr. David Alan Gilbert <dgilbert@redhat.com>2017-02-24 18:28:34 +0000
committerDr. David Alan Gilbert <dgilbert@redhat.com>2017-02-28 11:30:23 +0000
commit67f11b5c23fca79845c04ace6af0b686c82e0f22 (patch)
treedc8694c3e1a985717e82f9e6abb66f35767b5b70 /exec.c
parente2fa71f527510387f9d474414eba7f9812c58347 (diff)
downloadqemu-67f11b5c23fca79845c04ace6af0b686c82e0f22.zip
qemu-67f11b5c23fca79845c04ace6af0b686c82e0f22.tar.gz
qemu-67f11b5c23fca79845c04ace6af0b686c82e0f22.tar.bz2
postcopy: Record largest page size
Record the largest page size in use; we'll need it soon for allocating temporary buffers. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Laurent Vivier <lvivier@redhat.com> Message-Id: <20170224182844.32452-7-dgilbert@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Diffstat (limited to 'exec.c')
-rw-r--r--exec.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/exec.c b/exec.c
index 24cdf64..785d20f 100644
--- a/exec.c
+++ b/exec.c
@@ -1524,6 +1524,19 @@ size_t qemu_ram_pagesize(RAMBlock *rb)
return rb->page_size;
}
+/* Returns the largest size of page in use */
+size_t qemu_ram_pagesize_largest(void)
+{
+ RAMBlock *block;
+ size_t largest = 0;
+
+ QLIST_FOREACH_RCU(block, &ram_list.blocks, next) {
+ largest = MAX(largest, qemu_ram_pagesize(block));
+ }
+
+ return largest;
+}
+
static int memory_try_enable_merging(void *addr, size_t len)
{
if (!machine_mem_merge(current_machine)) {