[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [XEND] balloon enough memory to enable shadow mode before live migration.a
# HG changeset patch # User Tim Deegan <tim.deegan@xxxxxxxxxxxxx> # Node ID 8013b84df1ac0810ff7de34dcafcd6b36b4bd664 # Parent 1de184deaa9c6fce2d7f12913b9da365e1accf86 [XEND] balloon enough memory to enable shadow mode before live migration.a Signed-off-by: Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx> --- tools/python/xen/xend/XendDomain.py | 4 ++++ tools/python/xen/xend/XendDomainInfo.py | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff -r 1de184deaa9c -r 8013b84df1ac tools/python/xen/xend/XendDomain.py --- a/tools/python/xen/xend/XendDomain.py Wed Sep 06 13:16:02 2006 +0100 +++ b/tools/python/xen/xend/XendDomain.py Fri Sep 08 18:55:53 2006 +0100 @@ -420,6 +420,10 @@ class XendDomain: """ The following call may raise a XendError exception """ dominfo.testMigrateDevices(True, dst) + if live: + """ Make sure there's memory free for enabling shadow mode """ + dominfo.checkLiveMigrateMemory() + if port == 0: port = xroot.get_xend_relocation_port() try: diff -r 1de184deaa9c -r 8013b84df1ac tools/python/xen/xend/XendDomainInfo.py --- a/tools/python/xen/xend/XendDomainInfo.py Wed Sep 06 13:16:02 2006 +0100 +++ b/tools/python/xen/xend/XendDomainInfo.py Fri Sep 08 18:55:53 2006 +0100 @@ -49,6 +49,7 @@ from xen.xend.xenstore.xsutil import Get from xen.xend.xenstore.xsutil import GetDomainPath, IntroduceDomain from xen.xend.xenstore.xswatch import xswatch +from xen.xend import arch """Shutdown code for poweroff.""" DOMAIN_POWEROFF = 0 @@ -1502,6 +1503,19 @@ class XendDomainInfo: self.image.createDeviceModel() ## public: + + def checkLiveMigrateMemory(self): + """ Make sure there's enough memory to migrate this domain """ + overhead_kb = 0 + if arch.type == "x86": + # 1MB per vcpu plus 4Kib/Mib of RAM. This is higher than + # the minimum that Xen would allocate if no value were given. + overhead_kb = self.info['vcpus'] * 1024 + self.info['maxmem'] * 4 + overhead_kb = ((overhead_kb + 1023) / 1024) * 1024 + # The domain might already have some shadow memory + overhead_kb -= xc.shadow_mem_control(self.domid) * 1024 + if overhead_kb > 0: + balloon.free(overhead_kb) def testMigrateDevices(self, network, dst): """ Notify all device about intention of migration _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |