uint64_t xbzrle_pages;
/* xbzrle number of cache miss */
uint64_t xbzrle_cache_miss;
+ /* xbzrle miss rate */
+ double xbzrle_cache_miss_rate;
};
typedef struct RAMState RAMState;
/* accounting for migration statistics */
typedef struct AccountingInfo {
- double xbzrle_cache_miss_rate;
uint64_t xbzrle_overflows;
} AccountingInfo;
double xbzrle_mig_cache_miss_rate(void)
{
- return acct_info.xbzrle_cache_miss_rate;
+ return ram_state.xbzrle_cache_miss_rate;
}
uint64_t xbzrle_mig_pages_overflow(void)
if (migrate_use_xbzrle()) {
if (rs->iterations_prev != rs->iterations) {
- acct_info.xbzrle_cache_miss_rate =
+ rs->xbzrle_cache_miss_rate =
(double)(rs->xbzrle_cache_miss -
rs->xbzrle_cache_miss_prev) /
(rs->iterations - rs->iterations_prev);
rs->xbzrle_bytes = 0;
rs->xbzrle_pages = 0;
rs->xbzrle_cache_miss = 0;
+ rs->xbzrle_cache_miss_rate = 0;
migration_bitmap_sync_init(rs);
qemu_mutex_init(&migration_bitmap_mutex);