Xen 
 
Home About Xen.org Xen Xen Summit Wiki Mailing List Bug Tracker Xen Downloads
 
   
 

xen-devel

[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
Tim,

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 
be
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
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel