[libvirt] [PATCH 00/23 v2] Add support for detecting QEMU capabilities via QMP

Daniel P. Berrange berrange at redhat.com
Fri Sep 14 15:20:50 UTC 2012


This is a followup to

  https://www.redhat.com/archives/libvir-list/2012-September/msg00643.html

As of QEMU 1.2 libvirt is supposed to stop parsing -help and instead
use various QMP commands to detect capabilities. Before we can do this,
the current QEMU capabilities code needs a serious cleanup and some
refactoring. The first half of this series does that major preparation
work, and the rest adds the new monitor commands and finally uses
them to detect capabilities.

Currently we consider "capabilities" to just refer to flags we detect
from -help. This series expands to cover all the things we detect
from QEMU, specifically including machine types, CPU definitions
and architecture. It introduces a single object to track all this
data and a centralized caching mechanism so we never re-query data
we already have somewhere.

 b/src/conf/capabilities.h                                            |    1 
 b/src/qemu/qemu_capabilities.c                                       | 1813 ++++++----
 b/src/qemu/qemu_capabilities.h                                       |   47 
 b/src/qemu/qemu_command.c                                            |  113 
 b/src/qemu/qemu_command.h                                            |    6 
 b/src/qemu/qemu_conf.h                                               |    2 
 b/src/qemu/qemu_driver.c                                             |  211 -
 b/src/qemu/qemu_monitor.c                                            |  197 +
 b/src/qemu/qemu_monitor.h                                            |   42 
 b/src/qemu/qemu_monitor_json.c                                       |  707 +++
 b/src/qemu/qemu_monitor_json.h                                       |   36 
 b/src/qemu/qemu_process.c                                            |   26 
 b/tests/qemuhelptest.c                                               |    2 
 b/tests/qemumonitorjsontest.c                                        |  303 +
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-eoi-disabled.args          |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-eoi-disabled.xml           |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-eoi-enabled.args           |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-eoi-enabled.xml            |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.args                |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.xml                 |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.args     |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.xml      |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.args                |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.xml                 |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.args              |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.xml               |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-host-kvmclock.args         |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-host-kvmclock.xml          |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-host-model-fallback.args   |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-host-model-fallback.xml    |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-host-model-nofallback.xml  |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-host-model.args            |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-host-model.xml             |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-host-passthrough.args      |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-host-passthrough.xml       |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-kvmclock.args              |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-kvmclock.xml               |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.args              |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.xml               |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.args              |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.xml               |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-nofallback.xml             |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa1.args                 |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa1.xml                  |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa2.args                 |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-numa2.xml                  |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-qemu-host-passthrough.xml  |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.args               |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.xml                |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-topology1.args             |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-topology1.xml              |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-topology2.args             |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-topology2.xml              |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-topology3.args             |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-cpu-topology3.xml              |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-eoi-disabled.args              |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-eoi-disabled.xml               |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-eoi-enabled.args               |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-eoi-enabled.xml                |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.args    |    2 
 b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.xml     |    2 
 b/tests/qemuxml2argvtest.c                                           |   66 
 b/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-timeout.xml |    2 
 b/tests/qemuxmlnstest.c                                              |    7 
 tests/qemuxml2argvdata/qemu-lib.sh                                   |   50 
 tests/qemuxml2argvdata/qemu-supported-cpus.sh                        |   15 
 tests/qemuxml2argvdata/qemu.sh                                       |   15 
 67 files changed, 2499 insertions(+), 1256 deletions(-)





More information about the libvir-list mailing list