QEMU has supported a "max" CPU model for many releases now, but somehow we never got it wired up into libvirt. "max" is useful for applications which don't care about live migration and just want the best CPU model possible. Normally "host" would be used but this only works for KVM. "max" is identical to "host" for KVM, while for TCG it exposes every feature TCG implements. This "max" model will be a natural choice for something like libguestfs and probably other apps too. In libvirt we enable it with <cpu mode="maximum"/> Daniel P. Berrangé (5): conf: define a new "maximum" CPU mode conf: add reporting of "maximum" CPU mode in domain caps cpu: wire up support for maximum CPU mode qemu: probe for "-cpu max" support qemu: wire up support for maximum CPU model docs/formatdomain.rst | 24 +++++++++++++++++ docs/formatdomaincaps.html.in | 6 +++++ docs/schemas/domaincaps.rng | 13 +++++++++ src/conf/cpu_conf.c | 13 ++++++--- src/conf/cpu_conf.h | 1 + src/conf/domain_capabilities.c | 15 +++++++++++ src/conf/domain_capabilities.h | 2 ++ src/cpu/cpu.c | 4 ++- src/cpu/cpu_ppc64.c | 10 +++++-- src/cpu/cpu_x86.c | 3 ++- src/qemu/qemu_capabilities.c | 27 +++++++++++++++++++ src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_command.c | 9 +++++-- src/qemu/qemu_domain.c | 10 ++++--- src/qemu/qemu_driver.c | 2 ++ src/qemu/qemu_process.c | 8 +++--- src/qemu/qemu_validate.c | 14 ++++++++-- tests/domaincapsdata/bhyve_basic.x86_64.xml | 1 + tests/domaincapsdata/bhyve_fbuf.x86_64.xml | 1 + tests/domaincapsdata/bhyve_uefi.x86_64.xml | 1 + tests/domaincapsdata/empty.xml | 1 + tests/domaincapsdata/libxl-xenfv.xml | 1 + tests/domaincapsdata/libxl-xenpv.xml | 1 + .../domaincapsdata/qemu_1.5.3-q35.x86_64.xml | 1 + .../domaincapsdata/qemu_1.5.3-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_1.5.3.x86_64.xml | 1 + .../domaincapsdata/qemu_1.6.0-q35.x86_64.xml | 1 + .../domaincapsdata/qemu_1.6.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_1.6.0.x86_64.xml | 1 + .../domaincapsdata/qemu_1.7.0-q35.x86_64.xml | 1 + .../domaincapsdata/qemu_1.7.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_1.7.0.x86_64.xml | 1 + .../domaincapsdata/qemu_2.1.1-q35.x86_64.xml | 1 + .../domaincapsdata/qemu_2.1.1-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.1.1.x86_64.xml | 1 + .../domaincapsdata/qemu_2.10.0-q35.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_2.10.0-tcg.x86_64.xml | 6 +++++ .../qemu_2.10.0-virt.aarch64.xml | 1 + tests/domaincapsdata/qemu_2.10.0.aarch64.xml | 1 + tests/domaincapsdata/qemu_2.10.0.ppc64.xml | 1 + tests/domaincapsdata/qemu_2.10.0.s390x.xml | 1 + tests/domaincapsdata/qemu_2.10.0.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_2.11.0-q35.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_2.11.0-tcg.x86_64.xml | 6 +++++ tests/domaincapsdata/qemu_2.11.0.s390x.xml | 1 + tests/domaincapsdata/qemu_2.11.0.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_2.12.0-q35.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_2.12.0-tcg.x86_64.xml | 6 +++++ .../qemu_2.12.0-virt.aarch64.xml | 6 +++++ tests/domaincapsdata/qemu_2.12.0.aarch64.xml | 6 +++++ tests/domaincapsdata/qemu_2.12.0.ppc64.xml | 6 +++++ tests/domaincapsdata/qemu_2.12.0.s390x.xml | 1 + tests/domaincapsdata/qemu_2.12.0.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_2.4.0-q35.x86_64.xml | 1 + .../domaincapsdata/qemu_2.4.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.4.0.x86_64.xml | 1 + .../domaincapsdata/qemu_2.5.0-q35.x86_64.xml | 1 + .../domaincapsdata/qemu_2.5.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.5.0.x86_64.xml | 1 + .../domaincapsdata/qemu_2.6.0-q35.x86_64.xml | 1 + .../domaincapsdata/qemu_2.6.0-tcg.x86_64.xml | 1 + .../qemu_2.6.0-virt.aarch64.xml | 1 + tests/domaincapsdata/qemu_2.6.0.aarch64.xml | 1 + tests/domaincapsdata/qemu_2.6.0.ppc64.xml | 1 + tests/domaincapsdata/qemu_2.6.0.x86_64.xml | 1 + .../domaincapsdata/qemu_2.7.0-q35.x86_64.xml | 1 + .../domaincapsdata/qemu_2.7.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.7.0.s390x.xml | 1 + tests/domaincapsdata/qemu_2.7.0.x86_64.xml | 1 + .../domaincapsdata/qemu_2.8.0-q35.x86_64.xml | 1 + .../domaincapsdata/qemu_2.8.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.8.0.s390x.xml | 1 + tests/domaincapsdata/qemu_2.8.0.x86_64.xml | 1 + .../domaincapsdata/qemu_2.9.0-q35.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_2.9.0-tcg.x86_64.xml | 6 +++++ tests/domaincapsdata/qemu_2.9.0.ppc64.xml | 1 + tests/domaincapsdata/qemu_2.9.0.s390x.xml | 1 + tests/domaincapsdata/qemu_2.9.0.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_3.0.0-q35.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_3.0.0-tcg.x86_64.xml | 6 +++++ tests/domaincapsdata/qemu_3.0.0.ppc64.xml | 6 +++++ tests/domaincapsdata/qemu_3.0.0.s390x.xml | 1 + tests/domaincapsdata/qemu_3.0.0.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_3.1.0-q35.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_3.1.0-tcg.x86_64.xml | 6 +++++ tests/domaincapsdata/qemu_3.1.0.ppc64.xml | 6 +++++ tests/domaincapsdata/qemu_3.1.0.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_4.0.0-q35.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_4.0.0-tcg.x86_64.xml | 6 +++++ .../qemu_4.0.0-virt.aarch64.xml | 6 +++++ tests/domaincapsdata/qemu_4.0.0.aarch64.xml | 6 +++++ tests/domaincapsdata/qemu_4.0.0.ppc64.xml | 6 +++++ tests/domaincapsdata/qemu_4.0.0.s390x.xml | 6 +++++ tests/domaincapsdata/qemu_4.0.0.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_4.1.0-q35.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_4.1.0-tcg.x86_64.xml | 6 +++++ tests/domaincapsdata/qemu_4.1.0.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_4.2.0-tcg.x86_64.xml | 6 +++++ .../qemu_4.2.0-virt.aarch64.xml | 6 +++++ tests/domaincapsdata/qemu_4.2.0.aarch64.xml | 6 +++++ tests/domaincapsdata/qemu_4.2.0.ppc64.xml | 6 +++++ tests/domaincapsdata/qemu_4.2.0.s390x.xml | 6 +++++ tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_5.0.0-tcg.x86_64.xml | 6 +++++ .../qemu_5.0.0-virt.aarch64.xml | 6 +++++ tests/domaincapsdata/qemu_5.0.0.aarch64.xml | 6 +++++ tests/domaincapsdata/qemu_5.0.0.ppc64.xml | 6 +++++ tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_5.1.0-q35.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_5.1.0-tcg.x86_64.xml | 6 +++++ tests/domaincapsdata/qemu_5.1.0.sparc.xml | 1 + tests/domaincapsdata/qemu_5.1.0.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 6 +++++ .../qemu_5.2.0-virt.aarch64.xml | 6 +++++ tests/domaincapsdata/qemu_5.2.0.aarch64.xml | 6 +++++ tests/domaincapsdata/qemu_5.2.0.ppc64.xml | 6 +++++ tests/domaincapsdata/qemu_5.2.0.s390x.xml | 6 +++++ tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 6 +++++ .../domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 6 +++++ tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 6 +++++ .../caps_2.10.0.x86_64.xml | 1 + .../caps_2.11.0.x86_64.xml | 1 + .../caps_2.12.0.aarch64.xml | 1 + .../caps_2.12.0.ppc64.xml | 1 + .../caps_2.12.0.x86_64.xml | 1 + .../caps_2.9.0.x86_64.xml | 1 + .../qemucapabilitiesdata/caps_3.0.0.ppc64.xml | 1 + .../caps_3.0.0.x86_64.xml | 1 + .../qemucapabilitiesdata/caps_3.1.0.ppc64.xml | 1 + .../caps_3.1.0.x86_64.xml | 1 + .../caps_4.0.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 1 + .../qemucapabilitiesdata/caps_4.0.0.s390x.xml | 1 + .../caps_4.0.0.x86_64.xml | 1 + .../caps_4.1.0.x86_64.xml | 1 + .../caps_4.2.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 + .../qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 + .../caps_4.2.0.x86_64.xml | 1 + .../caps_5.0.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 + .../caps_5.0.0.x86_64.xml | 1 + .../caps_5.1.0.x86_64.xml | 1 + .../caps_5.2.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_5.2.0.ppc64.xml | 1 + .../qemucapabilitiesdata/caps_5.2.0.s390x.xml | 1 + .../caps_5.2.0.x86_64.xml | 1 + .../caps_6.0.0.x86_64.xml | 1 + .../cpu-cache-passthrough3.err | 2 +- 153 files changed, 575 insertions(+), 19 deletions(-) -- 2.29.2