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
Eric Blake 3d0130cbcc cpumap: optimize for clients that don't need online count
It turns out that calling virNodeGetCPUMap(conn, NULL, NULL, 0)
is both useful, and with Viktor's patches, common enough to
optimize.  Since this interface hasn't been released yet, we
can change the RPC call.

A bit more background on the optimization - learning the cpu count
is a single file read (/sys/devices/system/cpu/possible), but
learning the number of online cpus can possibly trigger a file
read per cpu, depending on the age of the kernel, and all wasted
if the caller passed NULL for both arguments.

* src/nodeinfo.c (nodeGetCPUMap): Avoid bitmap when not needed.
* src/remote/remote_protocol.x (remote_node_get_cpu_map_args):
Supply two separate flags for needed arguments.
* src/remote/remote_driver.c (remoteNodeGetCPUMap): Update
caller.
* daemon/remote.c (remoteDispatchNodeGetCPUMap): Likewise.
* src/remote_protocol-structs: Regenerate.
2012-11-01 20:36:01 -06:00
.gnulib@d245e6ddd6 maint: update to latest gnulib 2012-10-22 20:25:44 -06:00
build-aux maint: fix up copyright notice inconsistencies 2012-09-20 16:30:55 -06:00
daemon cpumap: optimize for clients that don't need online count 2012-11-01 20:36:01 -06:00
docs sanlock: Introduce 'user' and 'group' conf variables 2012-10-30 10:12:10 +01:00
examples tests: Fix domain-events python test 2012-10-16 16:37:29 +02:00
gnulib build: fix fresh checkout on RHEL5 2012-04-19 17:11:43 -06:00
include blockjob: return appropriate event and info 2012-10-27 07:43:38 -06:00
m4 build: improve FORTIFY_SOURCE usage 2012-10-23 14:00:32 -06:00
po Implement CPU model driver for PowerPC 2012-10-17 10:03:34 +02:00
python maint: consistent whitespace after 'if' 2012-10-25 11:36:43 -06:00
src cpumap: optimize for clients that don't need online count 2012-11-01 20:36:01 -06:00
tests Create temporary dir for socket 2012-10-30 19:16:57 +01:00
tools net-update docs: s/domain/network/ 2012-11-01 16:55:56 +01:00
.dir-locals.el build: avoid tabs that failed syntax-check 2012-09-06 09:43:46 -06:00
.gitignore gitignore: Ignore 'tags' 2012-10-31 16:47:34 +01:00
.gitmodules make .gnulib a submodule 2009-07-08 16:17:51 +02:00
.mailmap Autogenerate AUTHORS 2012-10-19 12:44:56 -04:00
AUTHORS.in Remove a couple duplicates from AUTHORS.in 2012-10-22 16:19:38 -04:00
autobuild.sh Switch automated builds to use Mingw64 toolchain instead of Mingw32 2012-06-25 10:41:10 +01:00
autogen.sh build: avoid infinite autogen loop 2012-10-01 09:47:38 -06:00
bootstrap maint: regenerate bootstrap 2012-07-27 09:34:04 -06:00
bootstrap.conf build: prefer mkostemp for multi-thread safety 2012-10-31 10:06:10 -06:00
cfg.mk build: prefer mkostemp for multi-thread safety 2012-10-31 10:06:10 -06:00
ChangeLog-old virterror.c: Fix several spelling mistakes 2012-02-03 11:32:51 -07:00
configure.ac Fix disabling of apparmor/selinux security drivers 2012-10-23 08:56:03 +02:00
COPYING.LIB remove all trailing blank lines 2009-07-16 15:06:42 +02:00
HACKING Various typos and misspellings 2012-10-12 00:03:43 +02:00
libvirt.pc.in build: silence warning from autoconf 2012-05-30 09:22:02 -06:00
libvirt.spec.in build: Fix RPM build for non-x86 platforms 2012-10-31 20:45:12 -06:00
Makefile.am Autogenerate AUTHORS 2012-10-19 12:44:56 -04:00
Makefile.nonreentrant Ban use of all inet_* functions 2010-10-22 11:59:23 +01:00
mingw-libvirt.spec.in parallels: add driver skeleton 2012-08-01 11:44:26 +08: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
run.in syntax-check: fix run.in 2012-09-18 13:59:53 +02: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>