From mboxrd@z Thu Jan 1 00:00:00 1970 From: ANNIE LI Subject: Re: Error restoring DomU when using GPLPV Date: Thu, 20 Aug 2009 16:17:24 +0800 Message-ID: <4A8D0694.2010803@oracle.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: Joshua West , James Harper , "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org Hi > Regarding the Linux PV-on-HVM drivers - they may have the same issue. Full > PV guests do not as they have a gnttab_suspend() function called during > suspend callback (and for subtle reasons xc_domain_save can detect and not > save Xenheap pages for a full PV guests anyway - because it can see the P2M > table in that case). > Live migration of linux PVonHVM passed on Xen3.4 successfully, but windows os with pv driver failed. > Like I said before -- unmapping the gnttab pages I think will not help you > for live migration, but I suppose it is a reasonable thing to do anyway. For > live migration I think xc_domain_save needs t get a bit smarter about > Xenheap pages in HVM guests. Yes. The live migration of windows domu with pv driver failed again after we added unmapping gnttab and shinfo pages in suspending process. The save process is OK, but the restore hit the similar problem. So what should we do in windows pv driver to avoid this problem? Any suggestion for this issue? Any suggestion is appreciated. Following is the log of restore process: [2009-08-21 00:17:34 2918] DEBUG (XendCheckpoint:278) [xc_restore]: /usr/lib/xen/bin/xc_restore 31 33 2 3 1 1 1 [2009-08-21 00:17:34 2918] INFO (XendCheckpoint:418) xc_domain_restore start: p2m_size = 100000 [2009-08-21 00:17:34 2918] INFO (XendCheckpoint:418) Reloading memory pages: 0% [2009-08-21 00:17:44 2918] INFO (XendCheckpoint:418) Failed allocation for dom 33: 7 extents of order 0 [2009-08-21 00:17:44 2918] INFO (XendCheckpoint:418) ERROR Internal error: Failed to allocate memory for batch.! [2009-08-21 00:17:44 2918] INFO (XendCheckpoint:418) [2009-08-21 00:17:44 2918] INFO (XendCheckpoint:418) Restore exit with rc=1 [2009-08-21 00:17:44 2918] DEBUG (XendDomainInfo:2750) XendDomainInfo.destroy: domid=33 [2009-08-21 00:17:44 2918] ERROR (XendDomainInfo:2764) XendDomainInfo.destroy: domain destruction failed. Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 2757, in destroy xc.domain_pause(self.domid) Error: (3, 'No such process') [2009-08-21 00:17:44 2918] DEBUG (XendDomainInfo:2225) No device model [2009-08-21 00:17:44 2918] DEBUG (XendDomainInfo:2227) Releasing devices [2009-08-21 00:17:44 2918] DEBUG (XendDomainInfo:2240) Removing vif/0 [2009-08-21 00:17:44 2918] DEBUG (XendDomainInfo:1142) XendDomainInfo.destroyDevice: deviceClass = vif, device = vif/0 [2009-08-21 00:17:44 2918] DEBUG (XendDomainInfo:2240) Removing vbd/768 [2009-08-21 00:17:44 2918] DEBUG (XendDomainInfo:1142) XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/768 [2009-08-21 00:17:44 2918] DEBUG (XendDomainInfo:2240) Removing vfb/0 [2009-08-21 00:17:44 2918] DEBUG (XendDomainInfo:1142) XendDomainInfo.destroyDevice: deviceClass = vfb, device = vfb/0 [2009-08-21 00:17:44 2918] DEBUG (XendDomainInfo:2240) Removing console/0 [2009-08-21 00:17:44 2918] DEBUG (XendDomainInfo:1142) XendDomainInfo.destroyDevice: deviceClass = console, device = console/0 [2009-08-21 00:17:45 2918] ERROR (XendDomain:1149) Restore failed Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/xen/xend/XendDomain.py", line 1147, in domain_restore_fd return XendCheckpoint.restore(self, fd, paused=paused, relocating=relocating) File "/usr/lib/python2.4/site-packages/xen/xend/XendCheckpoint.py", line 282, in restore forkHelper(cmd, fd, handler.handler, True) File "/usr/lib/python2.4/site-packages/xen/xend/XendCheckpoint.py", line 406, in forkHelper raise XendError("%s failed" % string.join(cmd)) XendError: /usr/lib/xen/bin/xc_restore 31 33 2 3 1 1 1 failed Thanks Annie.