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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list