This is technically a v2 of the not yet pushed part of "qemu: Use migratable host CPU model from QEMU" series, but the patches were significantly rewritten based on the review comments and on the need for additional regression fix. Current libvirt makes a migratable host CPU model by removing features marked in cpu_map.xml with migratable='no'. This is not ideal because cpu_map.xml is a static database while feature migratability may differ depending on a hypervisor or its version. Thus we should preferably use the data we got from QEMU. And to make things even more complicated, we need to use both CPUID data we probed and data from QEMU when checking whether a guest CPU can run on the host to maintain backward compatibility with older libvirt. Thus we need to store three different views of the host CPU model with each QEMU binary. Jiri Denemark (9): qemu: Introduce virQEMUCapsSetHostModel qemu: Move qemuCaps CPU data copying into a separate function qemu: Introduce virQEMUCapsHostCPUDataClear qemu: Move qemuCaps host CPU data in a struct qemu: Prepare qemuCaps for multiple host CPU defs qemu: Pass migratable host CPU model to virCPUUpdate cpu: Drop feature filtering from virCPUUpdate cpu: Introduce virCPUGetHostIsSupported qemu: Use more data for comparing CPUs src/cpu/cpu.c | 20 +++ src/cpu/cpu.h | 3 + src/cpu/cpu_x86.c | 9 +- src/libvirt_private.syms | 1 + src/qemu/qemu_capabilities.c | 288 +++++++++++++++++++++++++++++-------------- src/qemu/qemu_capabilities.h | 16 ++- src/qemu/qemu_command.c | 3 +- src/qemu/qemu_process.c | 6 +- tests/cputest.c | 7 +- 9 files changed, 247 insertions(+), 106 deletions(-) -- 2.12.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list