xend: Support HVM S3 resume.
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 20 May 2008 13:50:45 +0000 (14:50 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 20 May 2008 13:50:45 +0000 (14:50 +0100)
Signed-off-by: Yu Ke <ke.yu@intel.com>
Signed-off-by: Ke Liping <liping.ke@intel.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
tools/python/xen/xend/XendConstants.py
tools/python/xen/xend/XendDomain.py
tools/python/xen/xm/main.py

index 75f9d98c4373a2e081483f2a3b01fd91993e4053..8b982868417058d6bc5f414bc5839bc64a0c449a 100644 (file)
@@ -48,6 +48,7 @@ HVM_PARAM_VHPT_SIZE    = 8
 HVM_PARAM_BUFPIOREQ_PFN = 9
 HVM_PARAM_TIMER_MODE   = 10
 HVM_PARAM_HPET_ENABLED = 11
+HVM_PARAM_ACPI_S_STATE = 14
 
 restart_modes = [
     "restart",
@@ -102,11 +103,13 @@ LAST_SHUTDOWN_REASON = 'xend/last_shutdown_reason'
 TRIGGER_NMI   = 0
 TRIGGER_RESET = 1
 TRIGGER_INIT  = 2
+TRIGGER_S3RESUME = 3
 
 TRIGGER_TYPE = {
     "nmi"   : TRIGGER_NMI,
     "reset" : TRIGGER_RESET,
-    "init"  : TRIGGER_INIT
+    "init"  : TRIGGER_INIT,
+    "s3resume": TRIGGER_S3RESUME
 }
 
 #
index 1d86f4160aa997e410743bb68d96428a3aef7b7b..008909036424d197248c8feb298312b4af92e63e 100644 (file)
@@ -1657,6 +1657,9 @@ class XendDomain:
             trigger = TRIGGER_TYPE[trigger_name.lower()]
         else:
             raise XendError("Invalid trigger: %s" % trigger_name)
+        if trigger == TRIGGER_S3RESUME:
+            xc.hvm_set_param(dominfo.getDomid(), HVM_PARAM_ACPI_S_STATE, 0)
+            return None
         try:
             return xc.domain_send_trigger(dominfo.getDomid(),
                                           trigger,
index a7351dbd1a314f06cacd42e7094608ecaf9e4172..01660ca297b3574f02b822132400070d57738e2d 100644 (file)
@@ -143,7 +143,7 @@ SUBCOMMAND_HELP = {
                      'Get/set credit scheduler parameters.'),
     'sysrq'       : ('<Domain> <letter>', 'Send a sysrq to a domain.'),
     'debug-keys'  : ('<Keys>', 'Send debug keys to Xen.'),
-    'trigger'     : ('<Domain> <nmi|reset|init> [<VCPU>]',
+    'trigger'     : ('<Domain> <nmi|reset|init|s3resume> [<VCPU>]',
                      'Send a trigger to a domain.'),
     'vcpu-list'   : ('[Domain, ...]',
                      'List the VCPUs for all/some domains.'),