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] Live migration fails when available memory exactly equal

To: "Keir Fraser" <Keir.Fraser@xxxxxxxxxxxx>
Subject: RE: [Xen-devel] Live migration fails when available memory exactly equal to required memory on target system
From: "Graham, Simon" <Simon.Graham@xxxxxxxxxxx>
Date: Mon, 17 Jul 2006 21:28:11 -0400
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Mon, 17 Jul 2006 18:28:48 -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
Thread-index: Acap1/KlkcjoOagjQg2rX4gzRwd9YgAMID0w
Thread-topic: [Xen-devel] Live migration fails when available memory exactly equal to required memory on target system
I initially was also of the opinion that it was simply other code
grabbing the memory between the time the balloon driver freed it and the
time xc_restore attempted to grab it, _but_ that doesn't explain why it
only seems to happen when the original free amount is exactly the
required amount (I cant prove this is always the case, but my
observations so far is that it is).

I looked at the rounding code in balloon.py -- it's right although I do
think having a slack of only 1 MB is perhaps a little low.

I will try the debug build of Xen (just as soon as this Windows-DDK guy
can figure out how to build it ;-)


-----Original Message-----
From: Keir Fraser [mailto:Keir.Fraser@xxxxxxxxxxxx] 
Sent: Monday, July 17, 2006 3:34 PM
To: Graham, Simon
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-devel] Live migration fails when available memory
exactly equal to required memory on target system

On 17 Jul 2006, at 20:17, Graham, Simon wrote:

> This time, we can see that there was only 264MB free so we had to kick
> the balloon driver to free up 1MB - once this was done (and we had
> exactly 265MB free again), we were able to increase the reservation
> the target DomU to the requested amount...
> The above is fairly reproducible but I'm not sure where to go next to
> figure out where the issue really is (or, indeed, if there really is
> issue -- maybe this is just one of those inherently racy things;
> however, I find it odd that it only seems to happen when the initial
> free is exactly the same as the desired; I have plenty of other cases
> where there is way more and way less memory available all of which
> to work just fine).

Maybe there's a rounding error in the dom0 ballooning code. Your best 
bet is to get tracing out of Xen, which can tell you exactly how many 
pages are on Xen's free lists and how many are requested for the new 
domain being created -- a debug build of Xen would be a good start as 
that will turn on the DPRINTK tracing in Xen. Also bear in mind that 
the amount of free memory is always fluctuating in a live system -- for 
example the Xen network drivers are continually freeing and allocating 
memory to/from Xen. So if the dom0 ballooning logic is only freeing 
*exactly* what is required then that is probably a bit stupid: maybe 
some slack needs to be added (or the amount of slack increased).

  -- Keir

Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>