• Shriram Rajagopalan's avatar
    xen: use freeze/restore/thaw PM events for suspend/resume/chkpt · b3e96c0c
    Shriram Rajagopalan authored
    Use PM_FREEZE, PM_THAW and PM_RESTORE power events for
    suspend/resume/checkpoint functionality, instead of PM_SUSPEND
    and PM_RESUME. Use of these pm events fixes the Xen Guest hangup
    when taking checkpoints. When a suspend event is cancelled
    (while taking checkpoints once/continuously), we use PM_THAW
    instead of PM_RESUME. PM_RESTORE is used when suspend is not
    cancelled. See Documentation/power/devices.txt and linux/pm.h
    for more info about freeze, thaw and restore. The sequence of
    pm events in a suspend-resume scenario 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);
    Acked-by: default avatarIan Campbell <ian.campbell@citrix.com>
    Signed-off-by: default avatarShriram Rajagopalan <rshriram@cs.ubc.ca>
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    b3e96c0c
xenbus_probe_frontend.c 7.5 KB