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>
This commit is contained in:
parent
e2fa71f527
commit
67f11b5c23
13
exec.c
13
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)) {
|
||||
|
@ -64,6 +64,7 @@ void qemu_ram_set_idstr(RAMBlock *block, const char *name, DeviceState *dev);
|
||||
void qemu_ram_unset_idstr(RAMBlock *block);
|
||||
const char *qemu_ram_get_idstr(RAMBlock *rb);
|
||||
size_t qemu_ram_pagesize(RAMBlock *block);
|
||||
size_t qemu_ram_pagesize_largest(void);
|
||||
|
||||
void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,
|
||||
int len, int is_write);
|
||||
|
@ -93,6 +93,7 @@ struct MigrationIncomingState {
|
||||
*/
|
||||
QemuEvent main_thread_load_event;
|
||||
|
||||
size_t largest_page_size;
|
||||
bool have_fault_thread;
|
||||
QemuThread fault_thread;
|
||||
QemuSemaphore fault_thread_sem;
|
||||
|
@ -387,6 +387,7 @@ static void process_incoming_migration_co(void *opaque)
|
||||
int ret;
|
||||
|
||||
mis->from_src_file = f;
|
||||
mis->largest_page_size = qemu_ram_pagesize_largest();
|
||||
postcopy_state_set(POSTCOPY_INCOMING_NONE);
|
||||
migrate_set_state(&mis->state, MIGRATION_STATUS_NONE,
|
||||
MIGRATION_STATUS_ACTIVE);
|
||||
|
Loading…
Reference in New Issue
Block a user