qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3] migration/xbzrle: add encoding rate


From: Wei Wang
Subject: Re: [PATCH v3] migration/xbzrle: add encoding rate
Date: Thu, 04 Jun 2020 14:46:38 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0

On 06/04/2020 11:22 AM, Richard Henderson wrote:
On 6/3/20 7:58 PM, Wei Wang wrote:
It is possible that encoded_size==0, but unencoded_size !=0. For example,
a page is written with the same data that it already has.
That really contains 0 bytes?
Not even the ones that say "same data"?

Yes. It's a just delta operation, the diff (encoded_size) is 0 in that case.


You certainly have a magical compression algorithm there.
Or bad accounting.

The encoding_rate is expected to reflect if the page is xbzrle encoding 
friendly.
The larger, the more friendly, so 0 might not be a good representation here.

Maybe, we could change UINT64_MAX above to "~0ULL" to avoid the issue?
~0ull is no different than UINT64_MAX -- indeed, they are *exactly* the same
value -- and is not an exactly representible floating-point value.

If unencoded_size != 0, and (somehow) encoded_size == 0, then

   unencoded_size / encoded_size = Inf

which is indeed the limit of x -> 0, n / x.

Which is *also* printable by %0.2f.

I still contend that the middle if should be removed, and you should print out
whatever's left.  Either NaN or Inf is instructive.  Certainly nothing in the
middle cares about the actual value.


OK, leave it as "inf" looks good to me. Will send a patch to remove the middle. Thanks!

Best,
Wei






reply via email to

[Prev in Thread] Current Thread [Next in Thread]