[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v3 0/5] xen: Use PM/Hibernate events for save/restore/chkpt



The current implementation of xen guest save/restore/checkpoint functionality
uses PM_SUSPEND and PM_RESUME events. This is not optimal when taking
checkpoints of a virtual machine (where the suspend hypercall returns
non-zero, requiring the devices and xenbus to just pickup from where they left
off instead of a complete teardown/reconnect to backend). 

The following set of patches modify this implementation to use Hibernate style
control flow (freeze/restore for save/restore and freeze/thaw for checkpoint,
which is merely a cancelled save akin to failed swsusp() ).

These patches are against a merged tree based on linux-next branches from 
Stefano Stabellini and Rafael J. Wysocki.

Changes since last resend(s):
  - Introduce a new user visible symbol HIBERNATION_INTERFACE and
    hide the HIBERNATION symbol. As per earlier discussions, 
    XEN_SAVE_RESTORE could "select" HIBERNATION yet be able to hide the
    sysfs interfaces exposed by hibernation subsystem.

Disabling unnecessary code (if HIBERNATION_INTERFACE) is not
selected, requires a moving around a lot of code. Simply skipping 
snapshot.c, user.c etc from the compile does not help as these files have global
functions and variables, that are being used from elsewhere in the kernel. 
I have currently used #ifs to disable the sysfs interface when user visible
hibernation is disabled, but there is still some code bloat left.

Kazuhiro SUZUKI (1):
  xen: xenbus PM events support

Shriram Rajagopalan (4):
  xen: use freeze/restore/thaw PM events for suspend/resume/chkpt
  PM: pm.h - Add comments about Xen save/restore/chkpt use case
  PM: Add visible HIBERNATION_INTERFACE and hide HIBERNATION
  xen: fix XEN_SAVE_RESTORE Kconfig dependencies

 arch/x86/xen/Kconfig                       |    1 +
 drivers/xen/manage.c                       |   16 ++++++++--------
 drivers/xen/xenbus/xenbus_probe.c          |   12 ++++++++++--
 drivers/xen/xenbus/xenbus_probe.h          |    3 ++-
 drivers/xen/xenbus/xenbus_probe_frontend.c |   11 +++++++++--
 include/linux/pm.h                         |   19 +++++++++++++++++++
 include/xen/xenbus.h                       |    2 +-
 kernel/power/Kconfig                       |   11 ++++++++---
 kernel/power/hibernate.c                   |    8 ++++++++
 kernel/power/main.c                        |    2 +-
 kernel/power/user.c                        |    2 ++
 11 files changed, 69 insertions(+), 18 deletions(-)


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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.