Rebased and resent from about a month ago. Since version 2.10, QEMU can be built without TCG. This patch adds capabillity QEMU_CAPS_TCG_DISABLED that allows libvirt to use a QEMU built without TCG. Rather than create a capability that is set whenever TCG is enabled (almost always), QEMU_CAPS_TCG_DISABLED is set only when the TCG is not available. This avoids some issues with backwards compatability. For a domain that was created using QEMU >= 2.10 with KVM, there is no information in the cached XML file that says whether or not TCG was enabled. Versions of QEMU older than 2.10 do not have a QMP interface for determining whether QEMU is available. Since QEMU_CAPS_TCG_DISABLED is set only when TCG is disabled, we do not have to do any extra work to infer an appropriate value in either of these cases. New in vesion 4: Move virQEMUCapsProbeQMPTCGState into virQEMUCapsProbeQMPDevices so that we can reuse the qom call. Rename, virQEMUCapsProbeQMPDevices to virQEMUProbeQMPTypes. All patches compile. Tobin Feldman-Fitzthum (3): add QEMU_CAPS_TCG_DISABLED and probe conditionally add virQEMUCapsGetVirtType convenience function add virQEMUCapsProbeQMPTCGState function to set QEMU_CAPS_TCG_DISABLED src/qemu/qemu_capabilities.c | 81 +++++++++++++++++++++++++++--------- src/qemu/qemu_capabilities.h | 3 ++ 2 files changed, 65 insertions(+), 19 deletions(-) -- 2.20.1 (Apple Git-117)