On 06/21/2010 03:24 PM, Keir Fraser wrote:
On 21/06/2010 14:18, "Michal Novotny"<minovotn@xxxxxxxxxx> wrote:
So there's no xs_suspend_evtchn_port (or anything xs_*) function being
exported by /usr/lib64/libxenctrl.so (which is the symlink to
/usr/lib64/libxenctrl.so.4.0.0), therefore:
#objdump -x /usr/lib64/libxenctrl.so.4.0.0 | grep xs_
#objdump -x /xen-unstable.hg/tools/libxc/libxenctrl.so.4.0.0 | grep xs_
Libxenstore, libxenstore, libxen**STORE**.
#nm /my/path/to/libxenstore.so.3.0.0 | grep xs_sus
000000000000346a T xs_suspend_evtchn_port
-- Keir
Oh, sorry for that and thanks for noticing my mistake. I overlooked this
one, nevertheless it's still not working:
[2010-06-21 17:27:39 4305] DEBUG (XendCheckpoint:126) [xc_save]:
/usr/lib64/xen/bin/xc_save 56 1 0 0 4
[2010-06-21 17:27:39 4305] INFO (XendCheckpoint:410) xc_save: failed to
get the suspend evtchn port
[2010-06-21 17:27:39 4305] INFO (XendCheckpoint:410)
[2010-06-21 17:27:39 4305] DEBUG (XendCheckpoint:381) suspend
[2010-06-21 17:27:39 4305] DEBUG (XendCheckpoint:129) In
saveInputHandler suspend
[2010-06-21 17:27:39 4305] DEBUG (XendCheckpoint:131) Suspending 1 ...
[2010-06-21 17:27:39 4305] DEBUG (XendDomainInfo:521)
XendDomainInfo.shutdown(suspend)
[2010-06-21 17:27:39 4305] DEBUG (XendDomainInfo:1877)
XendDomainInfo.handleShutdownWatch
[2010-06-21 17:27:39 4305] INFO (XendDomainInfo:538) HVM save:remote
shutdown dom 1!
[2010-06-21 17:27:39 4305] INFO (XendCheckpoint:137) Domain 1 suspended.
[2010-06-21 17:27:39 4305] INFO (XendDomainInfo:2074) Domain has
shutdown: name=migrating-rhel5-32fv-stubdom id=1 reason=suspend.
[2010-06-21 17:27:40 4305] INFO (image:538) signalDeviceModel:restore dm
state to running
[2010-06-21 17:27:40 4305] DEBUG (XendCheckpoint:146) Written done
[2010-06-21 17:27:46 4305] DEBUG (XendDomainInfo:3067)
XendDomainInfo.destroy: domid=1
[2010-06-21 17:27:46 4305] DEBUG (XendDomainInfo:2397) Destroying device
model
[2010-06-21 17:27:47 4305] INFO (image:615) migrating-rhel5-32fv-stubdom
device model terminated
# ls -al rhel5-32fv.sav
-rwxr-xr-x 1 root root 54657427 Jun 21 17:27 rhel5-32fv.sav
# xm restore rhel5-32fv.sav
Error: /usr/lib64/xen/bin/xc_restore 4 2 2 3 1 1 1 0 failed
Usage: xm restore <CheckpointFile> [-p]
Restore a domain from a saved state.
-p, --paused Do not unpause domain after restoring it
# tail /var/log/xen/xend.log
[2010-06-21 17:29:21 4305] INFO (image:822) Need to create platform
device.[domid:2]
[2010-06-21 17:29:21 4305] DEBUG (XendCheckpoint:273)
restore:shadow=0x9, _static_max=0x40000000, _static_min=0x0,
[2010-06-21 17:29:21 4305] DEBUG (XendCheckpoint:292) [xc_restore]:
/usr/lib64/xen/bin/xc_restore 4 2 2 3 1 1 1 0
[2010-06-21 17:29:22 4305] INFO (XendCheckpoint:410) xc: error: Error
when reading batch size (0 = Success): Internal error
[2010-06-21 17:29:22 4305] INFO (XendCheckpoint:410) xc: error: error
when buffering batch, finishing (0 = Success): Internal error
[2010-06-21 17:29:22 4305] INFO (XendCheckpoint:410) xc: error: error
zeroing magic pages (22 = Invalid argument): Internal error
[2010-06-21 17:29:22 4305] DEBUG (XendDomainInfo:3067)
XendDomainInfo.destroy: domid=2
[2010-06-21 17:29:22 4305] ERROR (XendDomainInfo:3081)
XendDomainInfo.destroy: domain destruction failed.
Traceback (most recent call last):
File "usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py",
line 3074, in destroy
xc.domain_pause(self.domid)
Error: (3, 'No such process')
[2010-06-21 17:29:22 4305] DEBUG (XendDomainInfo:2402) No device model
[2010-06-21 17:29:22 4305] DEBUG (XendDomainInfo:2404) Releasing devices
[2010-06-21 17:29:22 4305] DEBUG (XendDomainInfo:2410) Removing vif/0
[2010-06-21 17:29:22 4305] DEBUG (XendDomainInfo:1272)
XendDomainInfo.destroyDevice: deviceClass = vif, device = vif/0
[2010-06-21 17:29:22 4305] DEBUG (XendDomainInfo:2410) Removing vbd/768
[2010-06-21 17:29:22 4305] DEBUG (XendDomainInfo:1272)
XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/768
[2010-06-21 17:29:22 4305] DEBUG (XendDomainInfo:2410) Removing vbd/2048
[2010-06-21 17:29:22 4305] DEBUG (XendDomainInfo:1272)
XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/2048
[2010-06-21 17:29:22 4305] DEBUG (XendDomainInfo:2410) Removing vfb/0
[2010-06-21 17:29:22 4305] DEBUG (XendDomainInfo:1272)
XendDomainInfo.destroyDevice: deviceClass = vfb, device = vfb/0
[2010-06-21 17:29:22 4305] DEBUG (XendDomainInfo:2410) Removing console/0
[2010-06-21 17:29:22 4305] DEBUG (XendDomainInfo:1272)
XendDomainInfo.destroyDevice: deviceClass = console, device = console/0
[2010-06-21 17:29:22 4305] ERROR (XendCheckpoint:344)
/usr/lib64/xen/bin/xc_restore 4 2 2 3 1 1 1 0 failed
Traceback (most recent call last):
File "/usr/lib64/python2.4/site-packages/xen/xend/XendCheckpoint.py",
line 296, in restore
forkHelper(cmd, fd, handler.handler, True)
File "/usr/lib64/python2.4/site-packages/xen/xend/XendCheckpoint.py",
line 398, in forkHelper
raise XendError("%s failed" % string.join(cmd))
XendError: /usr/lib64/xen/bin/xc_restore 4 2 2 3 1 1 1 0 failed
[2010-06-21 17:29:22 4305] ERROR (XendDomain:1182) Restore failed
Traceback (most recent call last):
File "usr/lib64/python2.4/site-packages/xen/xend/XendDomain.py", line
1166, in domain_restore_fd
dominfo = XendCheckpoint.restore(self, fd, paused=paused,
relocating=relocating)
File "/usr/lib64/python2.4/site-packages/xen/xend/XendCheckpoint.py",
line 345, in restore
raise exn
XendError: /usr/lib64/xen/bin/xc_restore 4 2 2 3 1 1 1 0 failed
So now it seems to be linked with the correct library but it can't get
the suspend port by now:
>> xc_save: failed to get the suspend evtchn port
This is being called from xc_save.c (snippet from line 192):
...
port = xs_suspend_evtchn_port(si.domid);
if (port < 0)
warnx("failed to get the suspend evtchn port\n");
else {
... suspend...
}
I had a look at the code for xenstore/xs.c I saw it's reading the value at:
/local/domain/%d/device/suspend/event-channel
but when I try to get it using:
xenstore-ls /local/domain/3/device/suspendupstream
where 3 is my domid I saw nothing, I saw just:
# xenstore-ls /local/domain/3/device
vfb = ""
0 = ""
state = "1"
backend-id = "0"
backend = "/local/domain/0/backend/vfb/3/0"
vbd = ""
768 = ""
backend-id = "0"
virtual-device = "768"
device-type = "disk"
state = "1"
backend = "/local/domain/0/backend/vbd/3/768"
2048 = ""
backend-id = "0"
virtual-device = "2048"
device-type = "disk"
state = "1"
backend = "/local/domain/0/backend/vbd/3/2048"
vif = ""
0 = ""
state = "1"
backend-id = "0"
backend = "/local/domain/0/backend/vif/3/0"
console = ""
0 = ""
state = "1"
backend-id = "0"
backend = "/local/domain/0/backend/console/3/0"
#
My guest is RHEL-5 i386 guest but this seems that the suspend port is
missing. AFAIK, you started using the SUSPEND_CANCEL some time ago which
requires the modified kernel.
Isn't it possible that's the issue or how is it with the SUSPEND_CANCEL
functionality?
Thanks,
Michal
--
Michal Novotny<minovotn@xxxxxxxxxx>, RHCE
Virtualization Team (xen userspace), Red Hat
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|