@@ -516,6 +516,25 @@ extern void update_pm_runtime_accounting(struct device *dev);
* well as during system sleep states like PM_SUSPEND_STANDBY. They may
* be able to use wakeup events to exit from runtime low-power states,
* or from system low-power states such as standby or suspend-to-RAM.
+ *
+ * Xen Guest Kernels use PM_FREEZE, PM_RESTORE and PM_THAW to implement
+ * VM save/restore/checkpoint functionality. Save and Restore are somewhat
+ * similar to hibernate functionality. The sequence of events is shown below:
+ * dpm_suspend_start(PMSG_FREEZE);
+ *
+ * dpm_suspend_noirq(PMSG_FREEZE);
+ *
+ * sysdev_suspend(PMSG_FREEZE);
+ * cancelled = suspend_hypercall()
+ * sysdev_resume();
+ *
+ * dpm_resume_noirq(cancelled ? PMSG_THAW : PMSG_RESTORE);
+ *
+ * dpm_resume_end(cancelled ? PMSG_THAW : PMSG_RESTORE);
+ *
+ * If the syspend_hypercall returns 1, it means that the VM was merely
+ * checkpointed (akin to THAW). If it returns 0, it means the system has been
+ * fully restored from its on-disk snapshot (akin to RESTORE).
*/
#ifdef CONFIG_PM_SLEEP