migration: fix xbzrle encoding rate calculation
It's reported an error of implicit conversion from "unsigned long" to
"double" when compiling with Clang 10. Simply make the encoding rate 0
when the encoded_size is 0.
Fixes: e460a4b1a4
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reported-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Wei Wang <wei.w.wang@intel.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20200617201309.1640952-3-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
4066288694
commit
9227140217
@ -913,10 +913,8 @@ static void migration_update_rates(RAMState *rs, int64_t end_time)
|
|||||||
unencoded_size = (xbzrle_counters.pages - rs->xbzrle_pages_prev) *
|
unencoded_size = (xbzrle_counters.pages - rs->xbzrle_pages_prev) *
|
||||||
TARGET_PAGE_SIZE;
|
TARGET_PAGE_SIZE;
|
||||||
encoded_size = xbzrle_counters.bytes - rs->xbzrle_bytes_prev;
|
encoded_size = xbzrle_counters.bytes - rs->xbzrle_bytes_prev;
|
||||||
if (xbzrle_counters.pages == rs->xbzrle_pages_prev) {
|
if (xbzrle_counters.pages == rs->xbzrle_pages_prev || !encoded_size) {
|
||||||
xbzrle_counters.encoding_rate = 0;
|
xbzrle_counters.encoding_rate = 0;
|
||||||
} else if (!encoded_size) {
|
|
||||||
xbzrle_counters.encoding_rate = UINT64_MAX;
|
|
||||||
} else {
|
} else {
|
||||||
xbzrle_counters.encoding_rate = unencoded_size / encoded_size;
|
xbzrle_counters.encoding_rate = unencoded_size / encoded_size;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user