migration: introduce migration_update_rates
It is used to slightly clean the code up, no logic is changed Signed-off-by: Xiao Guangrong <xiaoguangrong@tencent.com> Message-Id: <20180604095520.8563-5-xiaoguangrong@tencent.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
parent
e0e7a45d7f
commit
b734035b61
|
@ -1141,6 +1141,25 @@ uint64_t ram_pagesize_summary(void)
|
||||||
return summary;
|
return summary;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void migration_update_rates(RAMState *rs, int64_t end_time)
|
||||||
|
{
|
||||||
|
uint64_t iter_count = rs->iterations - rs->iterations_prev;
|
||||||
|
|
||||||
|
/* calculate period counters */
|
||||||
|
ram_counters.dirty_pages_rate = rs->num_dirty_pages_period * 1000
|
||||||
|
/ (end_time - rs->time_last_bitmap_sync);
|
||||||
|
|
||||||
|
if (!iter_count) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (migrate_use_xbzrle()) {
|
||||||
|
xbzrle_counters.cache_miss_rate = (double)(xbzrle_counters.cache_miss -
|
||||||
|
rs->xbzrle_cache_miss_prev) / iter_count;
|
||||||
|
rs->xbzrle_cache_miss_prev = xbzrle_counters.cache_miss;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void migration_bitmap_sync(RAMState *rs)
|
static void migration_bitmap_sync(RAMState *rs)
|
||||||
{
|
{
|
||||||
RAMBlock *block;
|
RAMBlock *block;
|
||||||
|
@ -1170,9 +1189,6 @@ static void migration_bitmap_sync(RAMState *rs)
|
||||||
|
|
||||||
/* more than 1 second = 1000 millisecons */
|
/* more than 1 second = 1000 millisecons */
|
||||||
if (end_time > rs->time_last_bitmap_sync + 1000) {
|
if (end_time > rs->time_last_bitmap_sync + 1000) {
|
||||||
/* calculate period counters */
|
|
||||||
ram_counters.dirty_pages_rate = rs->num_dirty_pages_period * 1000
|
|
||||||
/ (end_time - rs->time_last_bitmap_sync);
|
|
||||||
bytes_xfer_now = ram_counters.transferred;
|
bytes_xfer_now = ram_counters.transferred;
|
||||||
|
|
||||||
/* During block migration the auto-converge logic incorrectly detects
|
/* During block migration the auto-converge logic incorrectly detects
|
||||||
|
@ -1194,16 +1210,9 @@ static void migration_bitmap_sync(RAMState *rs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (migrate_use_xbzrle()) {
|
migration_update_rates(rs, end_time);
|
||||||
if (rs->iterations_prev != rs->iterations) {
|
|
||||||
xbzrle_counters.cache_miss_rate =
|
rs->iterations_prev = rs->iterations;
|
||||||
(double)(xbzrle_counters.cache_miss -
|
|
||||||
rs->xbzrle_cache_miss_prev) /
|
|
||||||
(rs->iterations - rs->iterations_prev);
|
|
||||||
rs->xbzrle_cache_miss_prev = xbzrle_counters.cache_miss;
|
|
||||||
}
|
|
||||||
rs->iterations_prev = rs->iterations;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* reset period counters */
|
/* reset period counters */
|
||||||
rs->time_last_bitmap_sync = end_time;
|
rs->time_last_bitmap_sync = end_time;
|
||||||
|
|
Loading…
Reference in New Issue