From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:43609) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SyPQp-0005uZ-1F for qemu-devel@nongnu.org; Mon, 06 Aug 2012 11:41:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SyPQl-0003Fv-AW for qemu-devel@nongnu.org; Mon, 06 Aug 2012 11:41:23 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38463) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SyPQl-0003FT-1u for qemu-devel@nongnu.org; Mon, 06 Aug 2012 11:41:19 -0400 Message-ID: <501FE596.4050108@redhat.com> Date: Mon, 06 Aug 2012 09:41:10 -0600 From: Eric Blake MIME-Version: 1.0 References: <1344158004-10370-1-git-send-email-owasserm@redhat.com> <1344158004-10370-4-git-send-email-owasserm@redhat.com> In-Reply-To: <1344158004-10370-4-git-send-email-owasserm@redhat.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------enig66FD3DB92D15D09ACB26964C" Subject: Re: [Qemu-devel] [PATCH 03/11] Add XBZRLE documentation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Orit Wasserman Cc: peter.maydell@linaro.org, aliguori@us.ibm.com, quintela@redhat.com, stefanha@gmail.com, qemu-devel@nongnu.org, mdroth@linux.vnet.ibm.com, blauwirbel@gmail.com, avi@redhat.com, pbonzini@redhat.com, lcapitulino@redhat.com, chegu_vinod@hp.com This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig66FD3DB92D15D09ACB26964C Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 08/05/2012 03:13 AM, Orit Wasserman wrote: > Signed-off-by: Orit Wasserman > --- > docs/xbzrle.txt | 136 +++++++++++++++++++++++++++++++++++++++++++++++= ++++++++ > 1 files changed, 136 insertions(+), 0 deletions(-) > create mode 100644 docs/xbzrle.txt >=20 > diff --git a/docs/xbzrle.txt b/docs/xbzrle.txt > new file mode 100644 > index 0000000..ce577a9 > --- /dev/null > +++ b/docs/xbzrle.txt > @@ -0,0 +1,136 @@ > +XBZRLE (Xor Based Zero Run Length Encoding) > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +Using XBZRLE (Xor Based Zero Run Length Encoding) allows for the reduc= tion > +of VM downtime and the total live-migration time of Virtual machines. > +It is particularly useful for virtual machines running memory write in= tensive > +workloads that are typical of large enterprise applications such as SA= P ERP > +Systems, and generally speaking for any application that uses a sparse= memory > +update pattern. > + > +Instead of sending the changed guest memory page this solution will se= nd a > +compressed version of the updates, thus reducing the amount of data se= nt during > +live migration. > +In order to be able to calculate the update, the previous memory pages= need to > +be stored on the source. Those pages are stored in a dedicated cache > +(hash table) and are > +accessed by their address. Line wrapping looks weird here; you may want to rewrap this whole paragra= ph. > +Migration Capabilities > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +In order to use XBZRLE the destination QEMU version should be able to > +decode the new format. > +Adding a new migration capabilities command that will allow external m= anagement > +to query for it support. > +A typical use for the destination > + {qemu} info migrate_supported_capabilities > + {qemu} xbzrle, ... Given my comments on 2/11, this would be: {qemu} info migrate_capabilities {qemu} xbzrle off, ... > + > +In order to enable capabilities for future live migration, > +a new command migrate_set_capability is introduced: > + {qemu} migrate_set_capability xbzrle Based on my reading of 2/11, this must be: {qemu} migrate_set_capability xbzrle on But then you go ahead and repeat this information down below; I wonder if you can simplify things by merging 'Migration Capabilities' and 'Usage' into one section, with just one example. > + > +Usage > +=3D=3D=3D=3D=3D=3D > + > +1. Activate xbzrle On both source and destination. > +2. Set the XBZRLE cache size - the cache size is in MBytes and should = be a > +power of 2. The cache default value is 64MBytes. On source only. > +3. start outgoing migration > + > +A typical usage scenario: > +On the incoming QEMU: > + {qemu} migrate_set_capability xbzrle on If you are going to merge examples, then showing the initial query of capabilities prior to setting anything might be nice. > +On the outgoing QEMU: > + {qemu} migrate_set_capability xbzrle on > + {qemu} migrate_set_cache_size 256m > + {qemu} migrate -d tcp:destination.host:4444 > + {qemu} info migrate > + ... > + cache size: 67108864 bytes > + transferred ram-duplicate: A kbytes > + transferred ram-normal: B kbytes > + transferred ram-xbrle: C kbytes > + overflow ram-xbrle: D pages > + cache-miss ram-xbrle: E pages Names such as 'ram-xbrle' do not match the code in the remainder of this series; make sure this example is accurate. --=20 Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --------------enig66FD3DB92D15D09ACB26964C Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBCAAGBQJQH+WWAAoJEKeha0olJ0NqtXcIAKNYRbJJ8gA6Aa3dpz5BtTJ/ JR8HK3EAnV7Z3/8mV0u66lYE9TwZLF1FTs+oZiMGkE4c14Kim9RX+iVgU1239f3O y1qYJLCsp6Btt4+sc0Ye+JbUwA1jkuXP6xKoBUYixT4JbrkjGzBQS8Ziwj1Xr1Ud 3grDqp1nQkEK2eo/0K0dC4E6Fd142pDHJWf1CtcT0xa1MNEoCubZJtxJd9dhCVSi e9ba2mFRPsk7b3Th277HhV9xnhDd9/n472ZVPj/WJ8EhJmkpTvXAb8bC1UiF3yz0 ifJ3oXeugQzdUszbQetL4OErcqhtF0m25enHTtv1jUqLaCWy/Tf4pg5+x3jCVPE= =R9SP -----END PGP SIGNATURE----- --------------enig66FD3DB92D15D09ACB26964C--