This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] [PATCH 1 of 2] tools/libxc: Remus Checkpoint Compression

To: Shriram Rajagopalan <rshriram@xxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH 1 of 2] tools/libxc: Remus Checkpoint Compression
From: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
Date: Fri, 17 Jun 2011 19:22:14 +0100
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx, ian.jackson@xxxxxxxxxxxxx
Delivery-date: Fri, 17 Jun 2011 11:22:51 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <5dbafaf24c7036f3e24e.1308239406@xxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Newsgroups: chiark.mail.xen.devel
References: <patchbomb.1308239405@xxxxxxxxxxxxxxxxxxx> <5dbafaf24c7036f3e24e.1308239406@xxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Shriram Rajagopalan writes ("[Xen-devel] [PATCH 1 of 2] tools/libxc: Remus 
Checkpoint Compression"):
> tools/libxc: Remus Checkpoint Compression
> Instead of sending dirty pages of guest memory as-is, use a simple
> compression algorithm that sends a RLE-encoded XOR of the page
> against its last sent copy.  A small LRU cache is used to hold
> recently dirtied pages. Pagetable pages are sent as-is, as they are
> canonicalized at sender side and uncanonicalized at receiver.

Thanks for this but it's very hard to review due to wrap damage on my

-                    if ( wruncached(io_fd, live, page, PAGE_SIZE) !=
+                    if (compression)
+                    {
+                        /* Add the pagetable page, raw into the page buffer */
+                        if (xc_remus_add_page(xch, remus_ctx, page,
pfn, 1) < 0)
+                        {
+                            /* We are out of buffer space to hold dirty pages.
+                             * Compress and flush the current buffer to
make space.
+                             * --This is a corner case, that slows down

Please keep your lines down to 75 characters or so.


Xen-devel mailing list