From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Lalancette Subject: [PATCH]: Xend: Balloon an additional 8MB for QEMU device model Date: Fri, 24 Aug 2007 14:21:34 -0400 Message-ID: <46CF21AE.9030206@redhat.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------030403090907030600030001" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------030403090907030600030001 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit All, Attached is a patch to make Xend balloon down an additional 8MB (for the Cirrus logic video device) when doing a restore or migrate. Without this, you can run into the following situation: 1) Start an HVM guest up on machine1 2) Boot up machine2, making sure dom0 has *all* of available memory 3) Migrate (off-line or live) from machine1 to machine2 4) Have the video device setup fail, with the following in the qemu-dm log file: Failed allocation for dom 3: 2048 extents of order 0 The problem ends up being that if dom0 has all of memory, the restore on the target side only balloons down exactly enough for the memory of the migrating domain; it doesn't take into account the additional memory needed for the device model. So the "populate_physmap" that happens as part of video device setup fails with out-of-memory, causing the failure above. Note that it could be argued that this additional ballooning should be done from QEMU, since it knows better than anyone how much memory it is going to need. However, all of the logic for ballooning is currently contained in xend, so it seems like a more appropriate place to put it. The patch is against 3.1.0, but should apply fairly easily to xen-unstable. Signed-off-by: Chris Lalancette --------------030403090907030600030001 Content-Type: text/x-patch; name="xen-3.1.0-hvm-qemu-balloon.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="xen-3.1.0-hvm-qemu-balloon.patch" --- xen-3.1.0-src/tools/python/xen/xend/XendCheckpoint.py.orig 2007-08-24 13:31:09.000000000 -0400 +++ xen-3.1.0-src/tools/python/xen/xend/XendCheckpoint.py 2007-08-24 13:32:04.000000000 -0400 @@ -178,6 +178,10 @@ def restore(xd, fd, paused=False): log.info("restore hvm domain %d, apic=%d, pae=%d", dominfo.domid, apic, pae) + + # for an HVM guest, we actually need an additional 2048 pages (8MB) + # for the qemu device model; add that here + nr_pfns += 2048 else: apic = 0 pae = 0 --------------030403090907030600030001 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------030403090907030600030001--