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


[Xen-devel] non-zero order allocations in shadow code may prevent live m

To: "Tim Deegan" <tdeegan@xxxxxxxxxxxxx>
Subject: [Xen-devel] non-zero order allocations in shadow code may prevent live migration
From: "Jan Beulich" <jbeulich@xxxxxxxxxx>
Date: Thu, 27 Sep 2007 10:51:55 +0100
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Thu, 27 Sep 2007 02:51:30 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx

after a lot of walking dead end routes with a customer issue stating that he
can't reliably run live migration I finally concluded that the problem can only 
explained by the non-zero order allocations done in shadow code (on x86-64
and x86-32/pae). However, from a PV-domain-live-migration perspective it
would seem to me that these order 2 allocations are entirely pointless; there
are really just 2 cases where non-zero order allocations are needed: a guest
in 32-bit non-PAE mode (can only be PV on a 32-bit non-PAE hypervisor, in
which case no non-zero order allocations are needed at all, or hvm) or
shadow_alloc_p2m_pages(). The latter is neither used for live migration nor
does it really require non-zero order allocations - its sole caller is
shadow_alloc_p2m_page(), which really only ever wants to return single
pages (i.e. allocating more than one page here acts at best as a short cut,
but I think there's really very little win from doing so).

So the bottom line is - sh_set_allocation() really shouldn't need to allocate
non-zero order pages except for hvm domains.

As this implies quite a few changes, before going that route I'd like to
understand whether I'm mistaken with anything here.

Thanks, Jan

Xen-devel mailing list