The current virConnectCompareCPU and virConnectBaselineCPU APIs are not
very useful because they ignore what a hypervisor can do on the current
host. This series adds two new APIs which are designed to work with
capabilities of a specific hypervisor to provide usable results.
The third CPU related API virConnectGetCPUModelNames is pretty useless
too, but no new API with similar functionality is needed because domain
capabilities XML already contains the relevant data.
Jiri Denemark (22):
virsh: Move cpu-{baseline,compare} commands
virsh: Extract common code from cmdCPU{Compare,Baseline}
virsh: Enhance documentation of cpu-compare command
virsh: Enhance documentation of cpu-models command
Improve documentation of virConnectGetCPUModelNames
vshExtractCPUDefXML: Accept domain capabilities XML
qemu_capabilities: Introduce virQEMUCapsCacheLookupDefault
Introduce virConnectCompareHypervisorCPU public API
remote: Implement virConnectCompareHypervisorCPU
virsh: Introduce new hypervisor-cpu-compare command
qemu: Implement virConnectCompareHypervisorCPU
Introduce virConnectBaselineHypervisorCPU public API
remote: Implement virConnectBaselineHypervisorCPU
virsh: Introduce new hypervisor-cpu-baseline command
cpu: Rename cpuBaseline as virCPUBaseline
cpu_x86: Add support for passing guest CPUs to virCPUx86Baseline
cpu: Add explicit arch parameter for virCPUBaseline
cpu: Update style in virCPUBaseline
cpu: Add optional list of allowed features to virCPUBaseline
qemu_capabilities: Introduce virQEMUCapsGetCPUFeatures
qemu: Implement virConnectBaselineHypervisorCPU
news: Mention new CPU related APIs
docs/news.xml | 9 +
include/libvirt/libvirt-host.h | 15 ++
src/bhyve/bhyve_driver.c | 4 +-
src/cpu/cpu.c | 34 ++-
src/cpu/cpu.h | 21 +-
src/cpu/cpu_arm.c | 11 +-
src/cpu/cpu_ppc64.c | 5 +-
src/cpu/cpu_x86.c | 35 ++-
src/driver-hypervisor.h | 20 ++
src/libvirt-host.c | 161 +++++++++++-
src/libvirt_private.syms | 2 +-
src/libvirt_public.syms | 6 +
src/libxl/libxl_driver.c | 4 +-
src/qemu/qemu_capabilities.c | 170 +++++++++++++
src/qemu/qemu_capabilities.h | 12 +
src/qemu/qemu_driver.c | 241 ++++++++++++------
src/remote/remote_driver.c | 4 +-
src/remote/remote_protocol.x | 40 ++-
src/remote_protocol-structs | 27 ++
src/test/test_driver.c | 2 +-
src/vz/vz_driver.c | 2 +-
tests/cputest.c | 6 +-
tools/virsh-domain.c | 223 -----------------
tools/virsh-host.c | 441 +++++++++++++++++++++++++++++++++
tools/virsh.pod | 90 ++++++-
25 files changed, 1223 insertions(+), 362 deletions(-)
--
2.17.0