mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-23 04:55:18 +00:00
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.
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>
Description
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.
Languages
C
94.8%
Python
2%
Meson
0.9%
Shell
0.8%
Dockerfile
0.6%
Other
0.8%