[libvirt] [PATCH v5 3/4] Implement the core API to suspend/resume the host

Daniel P. Berrange berrange at redhat.com
Tue Nov 29 08:59:27 UTC 2011


On Tue, Nov 29, 2011 at 03:12:35AM +0530, Srivatsa S. Bhat wrote:
> Add the core functions that implement the functionality of the API.
> Suspend is done by using an asynchronous mechanism so that we can return
> the status to the caller before the host gets suspended. This asynchronous
> operation is achieved by suspending the host in a separate thread of
> execution. However, returning the status to the caller is only best-effort,
> but not guaranteed.
> 
> To resume the host, an RTC alarm is set up (based on how long we want to
> suspend) before suspending the host. When this alarm fires, the host gets
> woken up.
> 
> Suspend-to-RAM operation on a host running Linux can take upto more than 20
> seconds, depending on the load of the system. (Freezing of tasks, an operation
> preceding any suspend operation, is given up after a 20 second timeout).
> And Suspend-to-Disk can take even more time, considering the time required
> for compaction, creating the memory image and writing it to disk etc.
> So, we do not allow the user to specify a suspend duration of less than 60
> seconds, to be on the safer side, since we don't want to prematurely declare
> failure when we only had to wait for some more time.
> 
> Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat at linux.vnet.ibm.com>
> ---
> 
>  src/Makefile.am           |    1 
>  src/libvirt.c             |    4 +
>  src/libvirt_private.syms  |    5 +
>  src/lxc/lxc_driver.c      |    2 
>  src/qemu/qemu_driver.c    |    2 
>  src/uml/uml_driver.c      |    2 
>  src/util/virnodesuspend.c |  269 +++++++++++++++++++++++++++++++++++++++++++++
>  src/util/virnodesuspend.h |   36 ++++++
>  src/xen/xen_driver.c      |    2 
>  9 files changed, 322 insertions(+), 1 deletions(-)
>  create mode 100644 src/util/virnodesuspend.c
>  create mode 100644 src/util/virnodesuspend.h

ACK

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list