Miroslav Rezanina
2010-Oct-11 12:52 UTC
[Xen-devel] Do not wait for memory teardown when live migrate
Hi, when trying to live migrate guest with great memory (e.g. 20 GB), there''s delay caused by destroying source copy of domain. To speed up this process we can close socket before starting guest destroy, as source guest is not running anymore. Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>: -- diff -r 3c4c3d48a835 tools/python/xen/xend/XendCheckpoint.py --- a/tools/python/xen/xend/XendCheckpoint.py Thu Aug 26 11:16:56 2010 +0100 +++ b/tools/python/xen/xend/XendCheckpoint.py Mon Oct 11 14:15:01 2010 +0200 @@ -65,7 +65,7 @@ return -def save(fd, dominfo, network, live, dst, checkpoint=False, node=-1): +def save(fd, dominfo, network, live, dst, checkpoint=False, node=-1,sock=None): from xen.xend import XendDomain try: @@ -162,6 +162,13 @@ if checkpoint: dominfo.resumeDomain() else: + if live and sock != None: + try: + sock.shutdown(2) + except: + pass + sock.close() + dominfo.destroy() dominfo.testDeviceComplete() try: diff -r 3c4c3d48a835 tools/python/xen/xend/XendDomain.py --- a/tools/python/xen/xend/XendDomain.py Thu Aug 26 11:16:56 2010 +0100 +++ b/tools/python/xen/xend/XendDomain.py Mon Oct 11 14:15:01 2010 +0200 @@ -1412,7 +1412,7 @@ try: try: XendCheckpoint.save(p2cwrite, dominfo, True, live, dst, - node=node) + node=node,sock=sock) except Exception, ex: m_dsterr = None try: @@ -1436,6 +1436,7 @@ raise XendError("%s (from %s)" % (m_dsterr.group(2), dst)) raise finally: + if not live: try: sock.shutdown(2) except: @@ -1469,7 +1470,7 @@ try: try: XendCheckpoint.save(sock.fileno(), dominfo, True, live, - dst, node=node) + dst, node=node,sock=sock) except Exception, ex: m_dsterr = None try: @@ -1493,6 +1494,7 @@ raise XendError("%s (from %s)" % (m_dsterr.group(2), dst)) raise finally: + if not live: try: sock.shutdown(2) except: -- Miroslav Rezanina Software Engineer - Virtualization Team - XEN kernel _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Paolo Bonzini
2010-Oct-11 15:19 UTC
[Xen-devel] Re: Do not wait for memory teardown when live migrate
On 10/11/2010 02:52 PM, Miroslav Rezanina wrote:> @@ -1493,6 +1494,7 @@ > raise XendError("%s (from %s)" % (m_dsterr.group(2), dst)) > raise > finally: > + if not live: > try: > sock.shutdown(2) > except:Non-standard indentation? Paolo _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Miroslav Rezanina
2010-Oct-12 08:09 UTC
Re: [Xen-devel] Re: Do not wait for memory teardown when live migrate
----- "Paolo Bonzini" <pbonzini@redhat.com> wrote:> > raise XendError("%s (from %s)" % > (m_dsterr.group(2), dst)) > > raise > > finally: > > + if not live: > > try: > > sock.shutdown(2) > > except: > > Non-standard indentation?Yeah, sorry for lazyness...This is correctly indented version.>diff -r 3c4c3d48a835 tools/python/xen/xend/XendCheckpoint.py --- a/tools/python/xen/xend/XendCheckpoint.py Thu Aug 26 11:16:56 2010 +0100 +++ b/tools/python/xen/xend/XendCheckpoint.py Tue Oct 12 10:08:32 2010 +0200 @@ -65,7 +65,7 @@ return -def save(fd, dominfo, network, live, dst, checkpoint=False, node=-1): +def save(fd, dominfo, network, live, dst, checkpoint=False, node=-1,sock=None): from xen.xend import XendDomain try: @@ -162,6 +162,13 @@ if checkpoint: dominfo.resumeDomain() else: + if live and sock != None: + try: + sock.shutdown(2) + except: + pass + sock.close() + dominfo.destroy() dominfo.testDeviceComplete() try: diff -r 3c4c3d48a835 tools/python/xen/xend/XendDomain.py --- a/tools/python/xen/xend/XendDomain.py Thu Aug 26 11:16:56 2010 +0100 +++ b/tools/python/xen/xend/XendDomain.py Tue Oct 12 10:08:32 2010 +0200 @@ -1412,7 +1412,7 @@ try: try: XendCheckpoint.save(p2cwrite, dominfo, True, live, dst, - node=node) + node=node,sock=sock) except Exception, ex: m_dsterr = None try: @@ -1436,15 +1436,16 @@ raise XendError("%s (from %s)" % (m_dsterr.group(2), dst)) raise finally: - try: - sock.shutdown(2) - except: - # Probably the socket is already disconnected by sock.close - # in the destination side. - # Ignore the exception because it has nothing to do with - # an exception of XendCheckpoint.save. - pass - sock.close() + if not live: + try: + sock.shutdown(2) + except: + # Probably the socket is already disconnected by sock.close + # in the destination side. + # Ignore the exception because it has nothing to do with + # an exception of XendCheckpoint.save. + pass + sock.close() os.close(p2cread) os.close(p2cwrite) @@ -1469,7 +1470,7 @@ try: try: XendCheckpoint.save(sock.fileno(), dominfo, True, live, - dst, node=node) + dst, node=node,sock=sock) except Exception, ex: m_dsterr = None try: @@ -1493,15 +1494,16 @@ raise XendError("%s (from %s)" % (m_dsterr.group(2), dst)) raise finally: - try: - sock.shutdown(2) - except: - # Probably the socket is already disconnected by sock.close - # in the destination side. - # Ignore the exception because it has nothing to do with - # an exception of XendCheckpoint.save. - pass - sock.close() + if not live: + try: + sock.shutdown(2) + except: + # Probably the socket is already disconnected by sock.close + # in the destination side. + # Ignore the exception because it has nothing to do with + # an exception of XendCheckpoint.save. + pass + sock.close() def domain_save(self, domid, dst, checkpoint=False): """Start saving a domain to file. -- Miroslav Rezanina Software Engineer - Virtualization Team - XEN kernel _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Jackson
2010-Oct-28 10:41 UTC
Re: [Xen-devel] Do not wait for memory teardown when live migrate [and 1 more messages]
Miroslav Rezanina writes ("[Xen-devel] Do not wait for memory teardown when live migrate"):> when trying to live migrate guest with great memory (e.g. 20 GB), > there''s delay caused by destroying source copy of domain. To speed > up this process we can close socket before starting guest destroy, > as source guest is not running anymore.Thanks, I''ve applied the re-indented version. Do you do any tests with xl / libxl ? It would be nice to know whether there is a corresponding issue with xl (I think there shouldn''t be). xl and libxl are the future and xend is going to be deprecated. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel