Libvirt provides a portable, long term stable C API for managing the virtualization technologies provided by many operating systems. It includes support for QEMU, KVM, Xen, LXC, bhyve, Virtuozzo, VMware vCenter and ESX, VMware Desktop, Hyper-V, VirtualBox and the POWER Hypervisor.
Go to file
Laine Stump 72f8a7f197 qemu: new GRACEFUL flag for virDomainDestroy w/ QEMU support
When libvirt's virDomainDestroy API is shutting down the qemu process,
it first sends SIGTERM, then waits for 1.6 seconds and, if it sees the
process still there, sends a SIGKILL.

There have been reports that this behavior can lead to data loss
because the guest running in qemu doesn't have time to flush its disk
cache buffers before it's unceremoniously whacked.

This patch maintains that default behavior, but provides a new flag
VIR_DOMAIN_DESTROY_GRACEFUL to alter the behavior. If this flag is set
in the call to virDomainDestroyFlags, SIGKILL will never be sent to
the qemu process; instead, if the timeout is reached and the qemu
process still exists, virDomainDestroy will return an error.

Once this patch is in, the recommended method for applications to call
virDomainDestroyFlags will be with VIR_DOMAIN_DESTROY_GRACEFUL
included. If that fails, then the application can decide if and when
to call virDomainDestroyFlags again without
VIR_DOMAIN_DESTROY_GRACEFUL (to force the issue with SIGKILL).

(Note that this does not address the issue of existing applications
that have not yet been modified to use VIR_DOMAIN_DESTROY_GRACEFUL.
That is a separate patch.)
2012-02-03 14:21:17 -05:00
.gnulib@e9e8aba12a Update gnulib to fix mingw64 compilation errors 2012-02-01 17:37:45 -07:00
daemon build: clean up CPPFLAGS/INCLUDES usage 2012-02-03 10:36:02 -07:00
docs virterror.c: Fix several spelling mistakes 2012-02-03 11:32:51 -07:00
examples build: clean up CPPFLAGS/INCLUDES usage 2012-02-03 10:36:02 -07:00
gnulib build: update to latest gnulib 2012-01-12 15:47:54 -07:00
include qemu: new GRACEFUL flag for virDomainDestroy w/ QEMU support 2012-02-03 14:21:17 -05:00
m4 build: silence some compiler warnings from gnulib 2012-01-19 13:14:10 -07:00
po Add two new security label types 2012-02-02 17:44:37 -07:00
python Added missing memory reporting into python bindings 2012-02-03 10:48:32 -07:00
src qemu: new GRACEFUL flag for virDomainDestroy w/ QEMU support 2012-02-03 14:21:17 -05:00
tests build: expand rule to cover testsuite 2012-02-03 10:41:46 -07:00
tools build: prohibit raw malloc and free 2012-02-03 10:41:45 -07:00
.dir-locals.el maint: let emacs avoid tabs in rng files 2011-08-13 08:56:26 -06:00
.gitignore build: fix missing include 2012-01-27 11:18:35 -07:00
.gitmodules make .gnulib a submodule 2009-07-08 16:17:51 +02:00
.mailmap maint: prune duplicate listings in AUTHORS 2012-02-03 09:56:45 -07:00
AUTHORS maint: prune duplicate listings in AUTHORS 2012-02-03 09:56:45 -07:00
autobuild.sh Disable python explicitly in mingw32 autobuild 2011-12-19 13:44:18 +00:00
autogen.sh build: allow for local gnulib diffs 2011-11-09 09:03:33 -07:00
bootstrap Update gnulib to fix mingw64 compilation errors 2012-02-01 17:37:45 -07:00
bootstrap.conf Replace hashing algorithm with murmurhash 2012-01-26 14:18:53 +00:00
cfg.mk python: use libvirt_util to avoid raw free 2012-02-03 10:41:47 -07:00
ChangeLog-old virterror.c: Fix several spelling mistakes 2012-02-03 11:32:51 -07:00
configure.ac storage: Support different wiping algorithms 2012-01-26 13:59:30 +01:00
COPYING.LIB remove all trailing blank lines 2009-07-16 15:06:42 +02:00
HACKING Document STREQ_NULLABLE and STRNEQ_NULLABLE 2011-10-06 16:50:38 +02:00
libvirt.pc.in * libvirt.pc.in: applied patch from Daniel Berrange to fix --cflags 2006-03-24 13:18:12 +00:00
libvirt.spec.in Add a virt-host-validate command to sanity check HV config 2012-01-27 17:53:18 +00:00
Makefile.am maint: add missing copyright notices 2011-07-28 15:01:17 -06:00
Makefile.nonreentrant Ban use of all inet_* functions 2010-10-22 11:59:23 +01:00
mingw32-libvirt.spec.in Add virt-host-validate.1 to Mingw32 RPM spec file list 2012-01-30 12:03:30 +00:00
README Correct typos in the documentation (Atsushi SAKAI) 2008-01-24 10:15:13 +00:00
README-hacking maint: relax git minimum version 2010-02-24 14:29:27 -05:00
TODO Update todo list file to point at bugzilla/website 2010-10-13 16:45:26 +01:00

         LibVirt : simple API for virtualization

  Libvirt is a C toolkit to interact with the virtualization capabilities
of recent versions of Linux (and other OSes). It is free software
available under the GNU Lesser General Public License. Virtualization of
the Linux Operating System means the ability to run multiple instances of
Operating Systems concurrently on a single hardware system where the basic
resources are driven by a Linux instance. The library aim at providing
long term stable C API initially for the Xen paravirtualization but
should be able to integrate other virtualization mechanisms if needed.

Daniel Veillard <veillard@redhat.com>