This patchset enhances the QEMU support
for the new bulk stats API to include
equivalents of these APIs:
virDomainBlockInfo
virDomainGetInfo - for balloon stats
virDomainGetCPUStats
virDomainBlockStatsFlags
virDomainInterfaceStats
virDomainGetVcpusFlags
virDomainGetVcpus
This subset of API is the one oVirt relies on.
Scale/stress test on an oVirt test environment is in progress.
changes in v2: polishing and optimizations.
- incorporated feedback from Li Wei (thanks)
- added documentation
- optimized block group to gather all the information with just
one call to QEMU monitor
- stripped to bare bones merged the 'block info' group into the
'block' group - oVirt actually needs just one stat from there
- reorganized the keys to be more consistent and shorter.
The patchset is organized as follows:
- the first 4 patches do refactoring to extract internal helper
functions to be used by the old API and by the new bulk one.
For block stats on helper is actually added instead of extracted.
- since some groups require access to the QEMU monitor, one patch
extend the internal interface to easily accomodate that
- finally, the last six patches implement the support for the
bulk API.
Francesco Romani (11):
qemu: extract helper to get the current balloon
qemu: extract helper to gather vcpu data
qemu: add helper to get the block stats
qemu: report highest offset into block stats
qemu: bulk stats: pass connection to workers
qemu: bulk stats: implement CPU stats group
qemu: bulk stats: implement balloon group
qemu: bulk stats: implement VCPU group
qemu: bulk stats: implement interface group
qemu: bulk stats: implement block group
qemu: bulk stats: add block allocation information
include/libvirt/libvirt.h.in | 5 +
src/libvirt.c | 47 ++++
src/qemu/qemu_driver.c | 500 +++++++++++++++++++++++++++++++++++++++----
src/qemu/qemu_monitor.c | 23 ++
src/qemu/qemu_monitor.h | 19 ++
src/qemu/qemu_monitor_json.c | 125 +++++++----
src/qemu/qemu_monitor_json.h | 4 +
7 files changed, 639 insertions(+), 84 deletions(-)
--
1.9.3