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
Daniel P. Berrange 1b253a102f Fix performance & reliabilty of QMP probing
This previous commit

  commit 1a50ba2cb0
  Author: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
  Date:   Mon Nov 26 15:17:13 2012 +0100

    qemu: Fix QMP Capabability Probing Failure

which attempted to make sure the QEMU process used for probing
ran as the right user id, caused serious performance regression
and unreliability in probing. The -daemonize switch in QEMU
guarantees that the monitor socket is present before the parent
process exits. This means libvirtd is guaranteed to be able to
connect immediately. By switching from -daemonize to the
virCommandDaemonize API libvirtd was no longer synchronized with
QEMU's startup process. The result was that the QEMU monitor
failed to open and went into its 200ms sleep loop. This happened
for all 25 binaries resulting in 5 seconds worth of sleeping
at libvirtd startup. In addition sometimes when libvirt connected,
QEMU would be partially initialized and crash causing total
failure to probe that binary.

This commit reverts the previous change, ensuring we do use the
-daemonize flag to QEMU. Startup delay is cut from 7 seconds
to 2 seconds on my machine, which is on a par with what it was
prior to the capabilities rewrite.

To deal with the fact that QEMU needs to be able to create the
pidfile, we switch pidfile location fron runDir to libDir, which
QEMU is guaranteed to be able to write to.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-01-25 10:41:48 +00:00
.gnulib@61c7b1e32e build: fix build with optimization enabled 2013-01-03 10:12:47 -07:00
build-aux Document bracket whitespace rules & add syntax-check rule 2012-11-02 14:00:32 +00:00
daemon Introduce virTypedParamsClear public API 2013-01-18 15:04:00 +01:00
docs qemu: escape ipv6 for rbd network disk hosts 2013-01-25 11:48:24 +08:00
examples examples: Fix balloon event callback 2012-12-11 13:25:50 +01:00
gnulib maint: update to latest gnulib 2013-01-02 09:38:30 -07:00
include fix typos in comments for VIR_DOMAIN_PROCESS_SIGNAL_{PWR,SYS} 2013-01-22 16:58:42 +01:00
m4 Fix typo LIBCURL_{CFLAGS,LIBS} to CURL_{CFLAGS,LIBS} 2013-01-14 17:22:31 +00:00
po Add a port allocator class 2013-01-16 11:02:58 +00:00
python python: Fix bindings for virDomainSnapshotGet{Domain,Connect} 2013-01-24 21:24:30 +01:00
src Fix performance & reliabilty of QMP probing 2013-01-25 10:41:48 +00:00
tests qemu: escape ipv6 for rbd network disk hosts 2013-01-25 11:48:24 +08:00
tools node_memory: Add '\n' to help message 2013-01-25 13:25:59 +08:00
.dir-locals.el build: avoid tabs that failed syntax-check 2012-09-06 09:43:46 -06:00
.gitignore Add a port allocator class 2013-01-16 11:02:58 +00:00
.gitmodules
.mailmap Autogenerate AUTHORS 2012-10-19 12:44:56 -04:00
AUTHORS.in Add Claudio Bley to the committers list 2013-01-08 16:34:30 +01:00
autobuild.sh Switch automated builds to use Mingw64 toolchain instead of Mingw32 2012-06-25 10:41:10 +01:00
autogen.sh build: fix incremental autogen.sh when no AUTHORS is present 2012-12-03 14:59:09 -07:00
bootstrap maint: update to latest gnulib 2013-01-02 09:38:30 -07:00
bootstrap.conf build: use autobuild module to make build logs nicer 2013-01-02 16:43:58 -07:00
cfg.mk spec: indent %if to make it easier to see conditions 2013-01-21 10:36:14 -07:00
ChangeLog-old virterror.c: Fix several spelling mistakes 2012-02-03 11:32:51 -07:00
configure.ac build: further fixes for broken if_bridge.h 2013-01-14 21:08:23 -07:00
COPYING.LIB
HACKING Add a test suite for validating SELinux labelling 2013-01-14 13:40:04 +00:00
libvirt.pc.in build: silence warning from autoconf 2012-05-30 09:22:02 -06:00
libvirt.spec.in spec: indent %if to make it easier to see conditions 2013-01-21 10:36:14 -07:00
Makefile.am build: Fix AUTHORS generation 2012-12-17 21:17:55 +01:00
Makefile.nonreentrant Ban use of all inet_* functions 2010-10-22 11:59:23 +01:00
mingw-libvirt.spec.in spec: indent %if to make it easier to see conditions 2013-01-21 10:36:14 -07:00
README
README-hacking maint: relax git minimum version 2010-02-24 14:29:27 -05:00
run.in Add a virtlockd client as a lock driver impl 2012-12-13 15:26:57 +00: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>