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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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(-)


--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]