From mboxrd@z Thu Jan 1 00:00:00 1970 From: AP Xen Subject: Re: xl save -c issues with Windows 7 Ultimate Date: Thu, 5 May 2011 14:01:47 -0700 Message-ID: References: <1304427718.18845.103.camel@zakaz.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable 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: rshriram@cs.ubc.ca Cc: "xen-devel@lists.xensource.com" , Ian Campbell List-Id: xen-devel@lists.xenproject.org On Thu, May 5, 2011 at 7:42 AM, Shriram Rajagopalan wr= ote: > On Tue, May 3, 2011 at 2:17 PM, AP Xen wrote: >> >> On Tue, May 3, 2011 at 7:09 AM, Shriram Rajagopalan >> wrote: >> > On Tue, May 3, 2011 at 6:01 AM, Ian Campbell >> > wrote: >> >> >> >> On Fri, 2011-04-29 at 20:28 +0100, AP Xen wrote: >> >> > I am trying to do an "xl save -c" on a Windows 7 Ultimate domain th= at >> >> > will leave the domain running at the end of the save operation. >> >> >> >> Do you have pv drivers installed which support checkpoint suspends? I= 'm >> >> not sure if such a thing even exists for Windows. >> >> >> >> I'm also not entirely sure that checkpointing was ever supported for >> >> HVM >> >> domains without PV drivers (e.g. via emulated hibernation). Perhaps t= he >> >> Remus guys know? >> >> >> > Remus works with HVM domains via normal xenstore based suspend/resume. >> > Only PV-HVM support is "disabled" for the moment. >> >> >> >> [...] >> >> > At the end of this the domain is frozen. Is this a known issue? Any >> >> > pointers as to how to debug this? Where does xl pipe its debug >> >> > messages to? >> >> >> >> /var/log/xen/xl-.log. You can also do "xl -vvv " to >> >> get some additional debug output. >> >> >> > Yes. the logs would be great. Also, by frozen, do you mean the domain >> > remains >> > in "suspended" state? or is Windows hung? >> >> Not sure what the difference between Windows being suspended and hung >> is. Here is the xl list output: >> Name =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0ID =A0 Mem VCPUs =A0 =A0 =A0State >> Time(s) >> Domain-0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 0 =A02914 =A0 =A0 4 =A0 =A0 r----- >> =A01259.0 >> win7 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A015 =A01019 =A0 =A0 2 =A0 =A0 ---ss- >> =A0 0.3 >> >> Here is the log: >> Saving to win7chk new xl format (info 0x0/0x0/255) >> libxl: debug: libxl_dom.c:378:libxl__domain_suspend_common_callback >> Calling xc_domain_shutdown on HVM domain >> libxl: debug: libxl_dom.c:438:libxl__domain_suspend_common_callback >> wait for the guest to suspend >> libxl: debug: libxl_dom.c:450:libxl__domain_suspend_common_callback >> guest has suspended >> xc: debug: outbuf_write: 4194304 > 90092@16687124 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: debug: outbuf_write: 4194304 > 4169716@12607500 >> xc: detail: delta 9991ms, dom0 27%, target 0%, sent 863Mb/s, dirtied >> 0Mb/s 0 pages >> xc: detail: Total pages sent=3D 263168 (0.25x) >> xc: detail: (of which 0 were fixups) >> xc: detail: All memory is saved >> xc: detail: Save exit rc=3D0 >> libxl: debug: libxl_dom.c:534:libxl__domain_save_device_model Saving >> device model state to /var/lib/xen/qemu-save.15 >> libxl: debug: libxl_dom.c:546:libxl__domain_save_device_model Qemu >> state is 7204 bytes >> >> > Ok.=A0I see a "HVM shutdown". But where is the resume? > Going through the libxl code, one obvious difference I see between xl's > implementation of save > and the old xm implementation is, xl calls "xc_domain_unpause" while the = xm > implementation > calls xc_domain_resume. > > Just in case, have you tried the same with xm save -c ? > shriram xm save -c doesn't seem to work at all. root@tubuntu:/etc/xen# xm save -c win7 win7chk Error: Timeout waiting for domain 2 to suspend [2011-05-05 13:55:43 1615] DEBUG (XendCheckpoint:124) [xc_save]: /usr/lib/xen/bin/xc_save 22 2 0 0 0 [2011-05-05 13:55:43 1615] INFO (XendCheckpoint:423) xc_save: failed to get the suspend evtchn port [2011-05-05 13:55:43 1615] INFO (XendCheckpoint:423) [2011-05-05 13:55:43 1615] DEBUG (XendCheckpoint:394) suspend [2011-05-05 13:55:43 1615] DEBUG (XendCheckpoint:127) In saveInputHandler suspend [2011-05-05 13:55:43 1615] DEBUG (XendCheckpoint:129) Suspending 2 ... [2011-05-05 13:55:43 1615] DEBUG (XendDomainInfo:524) XendDomainInfo.shutdown(suspend) [2011-05-05 13:55:43 1615] DEBUG (XendDomainInfo:1881) XendDomainInfo.handleShutdownWatch [2011-05-05 13:56:44 1615] DEBUG (XendDomainInfo:1881) XendDomainInfo.handleShutdownWatch [2011-05-05 13:56:44 1615] INFO (XendCheckpoint:423) xc: error: Suspend request failed: Internal error [2011-05-05 13:56:44 1615] INFO (XendCheckpoint:423) xc: error: Domain appears not to have suspended: Internal error [2011-05-05 13:56:44 1615] ERROR (XendCheckpoint:185) Save failed on domain win7 (2) - resuming. Traceback (most recent call last): File "/usr/local/lib/python2.6/dist-packages/xen/xend/XendCheckpoint.py", line 146, in save forkHelper(cmd, fd, saveInputHandler, False) File "/usr/local/lib/python2.6/dist-packages/xen/xend/XendCheckpoint.py", line 395, in forkHelper inputHandler(line, child.tochild) File "/usr/local/lib/python2.6/dist-packages/xen/xend/XendCheckpoint.py", line 131, in saveInputHandler dominfo.waitForSuspend() File "/usr/local/lib/python2.6/dist-packages/xen/xend/XendDomainInfo.py", line 2998, in waitForSuspend raise XendError(msg) XendError: Timeout waiting for domain 2 to suspend [2011-05-05 13:56:44 1615] DEBUG (XendDomainInfo:3135) XendDomainInfo.resumeDomain(2)