From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:50375) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ri7IC-0007e3-Ig for qemu-devel@nongnu.org; Tue, 03 Jan 2012 11:32:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ri7I5-0000gH-L9 for qemu-devel@nongnu.org; Tue, 03 Jan 2012 11:32:52 -0500 Received: from mail-iy0-f173.google.com ([209.85.210.173]:58886) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ri7I5-0000gB-Hz for qemu-devel@nongnu.org; Tue, 03 Jan 2012 11:32:45 -0500 Received: by iagj37 with SMTP id j37so36112029iag.4 for ; Tue, 03 Jan 2012 08:32:44 -0800 (PST) Message-ID: <4F032DA7.30803@codemonkey.ws> Date: Tue, 03 Jan 2012 10:32:39 -0600 From: Anthony Liguori MIME-Version: 1.0 References: <1325604879-15862-1-git-send-email-owasserm@redhat.com> In-Reply-To: <1325604879-15862-1-git-send-email-owasserm@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v5 0/9] XBZRLE delta for live migration of large memory apps List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Orit Wasserman Cc: quintela@redhat.com, stefanha@gmail.com, qemu-devel@nongnu.org, blauwirbel@gmail.com, Petter Svard , Benoit Hudzia , Aidan Shribman On 01/03/2012 09:34 AM, Orit Wasserman wrote: > Changes from v4: > 1) Rebase > 2) divide patch into 9 patches > 3) move memory allocation into cache_insert > > By using XBZRLE (Xor Binary Zero Run-Length-Encoding) we can reduce VM downtime > and total live-migration time of VMs running memory write intensive workloads > typical of large enterprise applications such as SAP ERP Systems, and generally > speaking for any application with a sparse memory update pattern. > > On the sender side XBZRLE is used as a compact delta encoding of page updates, > retrieving the old page content from an LRU cache (default size of 64 MB). The > receiving side uses the existing page content and XBZRLE to decode the new page > content. > > Work was originally based on research results published VEE 2011: Evaluation of > Delta Compression Techniques for Efficient Live Migration of Large Virtual > Machines by Benoit, Svard, Tordsson and Elmroth. Additionally the delta encoder > XBRLE was improved further using XBZRLE instead. > > XBZRLE has a sustained bandwidth of 2-2.5 GB/s for typical workloads making it > ideal for in-line, real-time encoding such as is needed for live-migration. > > A typical usage scenario: > {qemu} migrate_set_cachesize 256m How does one intelligently choose a cache size? How bad is it to choose the wrong cache size? > {qemu} migrate -x -d tcp:destination.host:4444 We need to make this a negotiated feature, not a requirement for the user to figure out. Please go back to the previous thread for more details on this. Regards, Anthony Liguori > {qemu} info migrate > ... > transferred ram-duplicate: A kbytes > transferred ram-duplicate: B pages > transferred ram-normal: C kbytes > transferred ram-normal: D pages > transferred ram-xbrle: E kbytes > transferred ram-xbrle: F pages > overflow ram-xbrle: G pages > cache-hit ram-xbrle: H pages > cache-lookup ram-xbrle: J pages > > Testing: live migration with XBZRLE completed in 110 seconds, without live > migration was not able to complete. > > A simple synthetic memory r/w load generator: > .. include > .. include > .. int main() > .. { > .. char *buf = (char *) calloc(4096, 4096); > .. while (1) { > .. int i; > .. for (i = 0; i< 4096 * 4; i++) { > .. buf[i * 4096 / 4]++; > .. } > .. printf("."); > .. } > .. } > > Signed-off-by: Benoit Hudzia > Signed-off-by: Petter Svard > Signed-off-by: Aidan Shribman > > arch_init.c | 546 +++++++++++++++++++++++++++++++++++++++++++++++++---- > block-migration.c | 4 +- > hmp-commands.hx | 34 +++- > hw/hw.h | 4 +- > migration.c | 51 +++++- > migration.h | 19 ++ > qmp-commands.hx | 44 ++++- > savevm.c | 11 +- > sysemu.h | 4 +- > 9 files changed, 653 insertions(+), 64 deletions(-) >