return ram_state.xbzrle_overflows;
}
-static ram_addr_t ram_save_remaining(void)
+uint64_t ram_bytes_transferred(void)
{
- return ram_state.migration_dirty_pages;
+ return ram_state.bytes_transferred;
}
-uint64_t ram_bytes_transferred(void)
+uint64_t ram_bytes_remaining(void)
{
- return ram_state.bytes_transferred;
+ return ram_state.migration_dirty_pages * TARGET_PAGE_SIZE;
}
/* used by the search for pages to send */
}
}
-uint64_t ram_bytes_remaining(void)
-{
- return ram_save_remaining() * TARGET_PAGE_SIZE;
-}
-
uint64_t ram_bytes_total(void)
{
RAMBlock *block;
RAMState *rs = opaque;
uint64_t remaining_size;
- remaining_size = ram_save_remaining() * TARGET_PAGE_SIZE;
+ remaining_size = rs->migration_dirty_pages * TARGET_PAGE_SIZE;
if (!migration_in_postcopy(migrate_get_current()) &&
remaining_size < max_size) {
migration_bitmap_sync(rs);
rcu_read_unlock();
qemu_mutex_unlock_iothread();
- remaining_size = ram_save_remaining() * TARGET_PAGE_SIZE;
+ remaining_size = rs->migration_dirty_pages * TARGET_PAGE_SIZE;
}
/* We can do postcopy, and all the data is postcopiable */