libvirt/src/util
Srivatsa S. Bhat 4ddb37c395 Implement the core API to suspend/resume the host
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.
2011-11-29 17:29:17 +08:00
..
authhelper.c esx: Move username and password helper functions to authhelper.c 2010-03-16 20:15:32 +01:00
authhelper.h esx: Move username and password helper functions to authhelper.c 2010-03-16 20:15:32 +01:00
bitmap.c maint: rename virBufferVSprintf to virBufferAsprintf 2011-05-05 13:47:40 -06:00
bitmap.h Put <stdbool.h> into internal.h so it is available everywhere 2011-02-24 12:04:06 +00:00
buf.c Fix strchr call triggering gcc 4.3 & 4.4 bug 2011-11-15 15:00:10 -05:00
buf.h virbuf: add auto-indentation support 2011-10-20 16:02:16 -06:00
cgroup.c Don't leak memory if a cgroup is mounted multiple times 2011-08-31 17:51:09 +01:00
cgroup.h cgroup: Implement cpu.cfs_period_us and cpu.cfs_quota_us tuning API 2011-07-21 17:11:12 +08:00
command.c command: avoid fd leak on failure 2011-10-13 11:48:42 -06:00
command.h command: move all docs into .c file 2011-07-21 10:34:51 -06:00
conf.c Allow for URI aliases when connecting to libvirt 2011-10-19 09:14:34 +01:00
conf.h esx: Allow '-' in VMX entry names 2010-09-23 10:37:10 +02:00
dnsmasq.c Santize naming of socket address APIs 2011-11-09 17:10:23 +00:00
dnsmasq.h Split src/util/network.{c,h} into 5 pieces 2011-11-15 10:27:54 +00:00
ebtables.c Move virRun, virExec*, virFork to util/command 2011-06-07 14:06:11 -04:00
ebtables.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
event_poll.c Rewrite all the DTrace/SystemTAP probing 2011-10-11 11:26:13 +01:00
event_poll.h Move event code out of the daemon/ into src/util/ 2011-03-07 14:16:13 +00:00
event.c Introduce virConnectSetKeepAlive 2011-11-24 11:44:08 +01:00
event.h Promote virEvent*Handle/Timeout to public API 2011-06-21 10:08:47 -04:00
hash.c Add function to get hash table's key/value pairs 2011-11-18 11:58:17 -05:00
hash.h Add function to get hash table's key/value pairs 2011-11-18 11:58:17 -05:00
hooks.c utils: More useful error message for hook script failure 2011-07-29 22:40:47 +08:00
hooks.h qemu: add two hook script events "prepare" and "release" 2011-03-22 21:12:36 +08:00
hostusb.c util: avoid PATH_MAX-sized array 2011-06-22 17:13:58 -06:00
hostusb.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
iohelper.c util: fix thinko in runIO 2011-11-25 05:37:39 -07:00
iptables.c Santize naming of socket address APIs 2011-11-09 17:10:23 +00:00
iptables.h Split src/util/network.{c,h} into 5 pieces 2011-11-15 10:27:54 +00:00
json.c Remove bogus warning message in JSON code 2011-06-30 18:04:01 +01:00
json.h json: Fix *GetBoolean functions 2011-05-09 14:02:13 +02:00
keymaps.csv util: Add keymaps.csv 2011-07-21 15:02:52 +08:00
logging.c Fix off-by-one printing month in logging code 2011-11-02 14:55:35 +00:00
logging.h logging: Do not log timestamp through syslog 2011-09-29 13:42:34 +02:00
memory.c build: fix cygwin strerror_r failure 2011-02-11 12:32:17 -07:00
memory.h build: make VIR_FREE do some type checking 2011-04-25 10:20:18 -06:00
netlink.c build: fix compilation on systems missing libnl and new includes 2011-06-23 11:54:11 -04:00
netlink.h build: fix compilation on systems missing libnl and new includes 2011-06-23 11:54:11 -04:00
pci.c qemu: Restore the original states of PCI device when restarting daemon 2011-10-30 13:00:06 +08:00
pci.h qemu: Restore the original states of PCI device when restarting daemon 2011-10-30 13:00:06 +08:00
processinfo.c build: update gnulib 2010-05-06 14:35:38 -06:00
processinfo.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
qparams.c qparams.c: do not skip va_end, twice 2010-02-19 11:52:04 +01:00
qparams.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
sexpr.c Don't copy sexpr node value that is an empty string 2011-11-18 16:00:31 -07:00
sexpr.h Use virBufferPtr for sexpr2string instead of manual buffer handling 2011-04-05 09:14:59 +02:00
stats_linux.c build: rename files.h to virfile.h 2011-07-21 10:34:51 -06:00
stats_linux.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
storage_file.c build: silence coverity false positives 2011-08-02 16:39:01 -06:00
storage_file.h storage: Avoid memory leak on metadata fetching 2011-07-14 16:39:42 +02:00
sysinfo.c snapshot: simplify indentation of sysinfo 2011-10-20 16:02:16 -06:00
sysinfo.h snapshot: simplify indentation of sysinfo 2011-10-20 16:02:16 -06:00
threadpool.c Threadpool: Initialize new dynamic workers 2011-09-07 14:23:26 +02:00
threadpool.h daemon: Create priority workers pool 2011-09-05 18:14:08 +02:00
threads-pthread.c build: silence compiler warning on BSD 2011-11-04 16:43:37 -06:00
threads-pthread.h threads: add one-time initialization support 2011-04-25 08:53:09 -06:00
threads-win32.c threads: add one-time initialization support 2011-04-25 08:53:09 -06:00
threads-win32.h threads: add one-time initialization support 2011-04-25 08:53:09 -06:00
threads.c build: avoid pthreads-win32 on mingw 2010-06-10 06:05:31 -06:00
threads.h threads: add one-time initialization support 2011-04-25 08:53:09 -06:00
util.c Add 'Hybrid-Suspend' power management discovery for the host 2011-11-29 17:29:16 +08:00
util.h Add 'Hybrid-Suspend' power management discovery for the host 2011-11-29 17:29:16 +08:00
uuid.c util: Fix virUUIDGeneratePseudoRandomBytes 2011-10-28 08:54:34 -06:00
uuid.h build: add compiler attributes to virUUIDParse 2011-10-13 12:23:37 -06:00
viraudit.c build: rename files.h to virfile.h 2011-07-21 10:34:51 -06:00
viraudit.h maint: rename virtaudit to match file contents 2011-07-12 07:24:43 -06:00
virfile.c Introduce virFileRewrite for safe file rewrite 2011-10-27 20:11:24 +02:00
virfile.h Introduce virFileRewrite for safe file rewrite 2011-10-27 20:11:24 +02:00
virkeycode-mapgen.py Fix keymap used to talk with QEMU 2011-08-26 14:18:57 +01:00
virkeycode.c Fix keymap used to talk with QEMU 2011-08-26 14:18:57 +01:00
virkeycode.h util: add virtkeycode module 2011-07-21 15:57:47 +08:00
virnetdev.c Move functions for dealing with physical/virtual devices 2011-11-18 16:10:02 +00:00
virnetdev.h Move functions for dealing with physical/virtual devices 2011-11-18 16:10:02 +00:00
virnetdevbandwidth.c Split src/util/network.{c,h} into 5 pieces 2011-11-15 10:27:54 +00:00
virnetdevbandwidth.h Split src/util/network.{c,h} into 5 pieces 2011-11-15 10:27:54 +00:00
virnetdevbridge.c Split bridge.h into three separate files 2011-11-09 16:34:25 +00:00
virnetdevbridge.h Split bridge.h into three separate files 2011-11-09 16:34:25 +00:00
virnetdevmacvlan.c build: fix compile error with no macvtap 2011-11-18 14:58:11 -07:00
virnetdevmacvlan.h Allow creation of plain macvlan devices 2011-11-18 16:10:37 +00:00
virnetdevtap.c Split src/util/network.{c,h} into 5 pieces 2011-11-15 10:27:54 +00:00
virnetdevtap.h Split bridge.h into three separate files 2011-11-09 16:34:25 +00:00
virnetdevveth.c Move LXC veth.c code into shared utility APIs 2011-11-15 10:28:02 +00:00
virnetdevveth.h Move LXC veth.c code into shared utility APIs 2011-11-15 10:28:02 +00:00
virnetdevvportprofile.c Fix disabling of virtual port profile code on old hosts 2011-11-23 12:29:37 +00:00
virnetdevvportprofile.h Rename and split the macvtap.c file 2011-11-18 16:10:01 +00:00
virnodesuspend.c Implement the core API to suspend/resume the host 2011-11-29 17:29:17 +08:00
virnodesuspend.h Implement the core API to suspend/resume the host 2011-11-29 17:29:17 +08:00
virpidfile.c debug: Annotate some variables as unused 2011-09-27 10:16:46 +02:00
virpidfile.h Add some APIs which use locking for crashsafe pidfile handling 2011-08-12 20:37:00 +01:00
virsocketaddr.c Split src/util/network.{c,h} into 5 pieces 2011-11-15 10:27:54 +00:00
virsocketaddr.h Split src/util/network.{c,h} into 5 pieces 2011-11-15 10:27:54 +00:00
virterror_internal.h build: avoid ATTRIBUTE_UNUSED in headers 2011-07-14 07:51:30 -06:00
virterror.c Export KVM Host Power Management capabilities 2011-11-22 11:31:22 +08:00
xml.c Introduce virXMLSaveFile as a wrapper for virFileRewrite 2011-10-27 20:13:06 +02:00
xml.h Introduce virXMLSaveFile as a wrapper for virFileRewrite 2011-10-27 20:13:06 +02:00