Mailing List Archive

I have previously posted a patch with changes to the xenbus for being
# HG changeset patch
# User kaf24@firebug.cl.cam.ac.uk
# Node ID 0bd023cf351eae5d41b86889d3febb4d41b6df69
# Parent 6d9b7a0ba238786008e0e96323180eff7a61c468
I have previously posted a patch with changes to the xenbus for being
able to detect the reason why a frontend is created, which can be either
due to domain creation or a restore. The attached patch now puts this
functionality into XenD and allows driver implementations in Xend to
read the state and see whether a domain is currently being resumed or
created and write this value into the xenstore for hotplug scripts to
read it. The state of a domain being resumed is set when a
XendDomainInfo object is created and reset at the end of the restore
function.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>

diff -r 6d9b7a0ba238 -r 0bd023cf351e tools/python/xen/xend/XendDomainInfo.py
--- a/tools/python/xen/xend/XendDomainInfo.py Fri Feb 3 10:51:39 2006
+++ b/tools/python/xen/xend/XendDomainInfo.py Fri Feb 3 10:54:05 2006
@@ -251,13 +251,14 @@

log.debug("XendDomainInfo.restore(%s)", config)

- vm = XendDomainInfo(parseConfig(config))
+ vm = XendDomainInfo(parseConfig(config), None, None, False, False, True)
try:
vm.construct()
vm.storeVmDetails()
vm.createDevices()
vm.createChannels()
vm.storeDomDetails()
+ vm.endRestore()
return vm
except:
vm.destroy()
@@ -410,7 +411,7 @@
class XendDomainInfo:

def __init__(self, info, domid = None, dompath = None, augment = False,
- priv = False):
+ priv = False, resume = False):

self.info = info

@@ -445,6 +446,7 @@
self.state_updated = threading.Condition()
self.refresh_shutdown_lock = threading.Condition()

+ self.setResume(resume)

## private:

@@ -758,6 +760,14 @@
"""Get this domain's target memory size, in KB."""
return self.info['memory'] * 1024

+ def getResume(self):
+ return "%s" % self.info['resume']
+
+ def endRestore(self):
+ self.setResume(False)
+
+ def setResume(self, state):
+ self.info['resume'] = state

def refreshShutdown(self, xeninfo = None):
# If set at the end of this method, a restart is required, with the
diff -r 6d9b7a0ba238 -r 0bd023cf351e tools/python/xen/xend/server/tpmif.py
--- a/tools/python/xen/xend/server/tpmif.py Fri Feb 3 10:51:39 2006
+++ b/tools/python/xen/xend/server/tpmif.py Fri Feb 3 10:54:05 2006
@@ -45,7 +45,8 @@

log.info("The domain has a TPM with instance %d and devid %d.",
inst, devid)
- back = { 'pref_instance' : "%i" % inst }
+ back = { 'pref_instance' : "%i" % inst,
+ 'resume' : "%s" % (self.vm.getResume()) }
front = { 'handle' : "%i" % devid }

return (devid, back, front)

_______________________________________________
Xen-changelog mailing list
Xen-changelog@lists.xensource.com
http://lists.xensource.com/xen-changelog