On 09/20/2018 05:25 PM, Andrea Bolognani wrote: > This is the output of 'virsh capabilities' on my laptop: > > <guest> > <os_type>hvm</os_type> > <arch name='x86_64'> > <wordsize>64</wordsize> > <emulator>/usr/bin/qemu-system-x86_64</emulator> > <machine maxCpus='255'>pc-i440fx-3.0</machine> > <machine canonical='pc-i440fx-3.0' maxCpus='255'>pc</machine> > <machine maxCpus='288'>pc-q35-3.0</machine> > <machine canonical='pc-q35-3.0' maxCpus='288'>q35</machine> > <!-- Actually way more machine types listed here --> > <domain type='qemu'/> > <domain type='kvm'> > <emulator>/usr/bin/qemu-kvm</emulator> > <machine maxCpus='255'>pc-i440fx-3.0</machine> > <machine canonical='pc-i440fx-3.0' maxCpus='255'>pc</machine> > <machine maxCpus='288'>pc-q35-3.0</machine> > <machine canonical='pc-q35-3.0' maxCpus='288'>q35</machine> > <!-- Actually way more machine types listed here --> > </domain> > </arch> > <!-- Other stuff we don't care about --> > </guest> > > Notice how all machine types are listed twice, and how we report > that qemu-system-x86_64 for TCG guests qemu-kvm must be used for > KVM guests - which is inaccurate, since the former can run KVM > guests just fine. > > After this series, the output is much more reasonable: > > <guest> > <os_type>hvm</os_type> > <arch name='x86_64'> > <wordsize>64</wordsize> > <emulator>/usr/bin/qemu-system-x86_64</emulator> > <machine maxCpus='255'>pc-i440fx-3.0</machine> > <machine canonical='pc-i440fx-3.0' maxCpus='255'>pc</machine> > <machine maxCpus='288'>pc-q35-3.0</machine> > <machine canonical='pc-q35-3.0' maxCpus='288'>q35</machine> > <!-- Actually way more machine types listed here --> > <domain type='qemu'/> > <domain type='kvm'/> > </arch> > <!-- Other stuff we don't care about --> > </guest> > > As a bonus the code gets *simpler* in the process instead of more > complicated, and we even get to shave off ~100 lines! Yay! > > Andrea Bolognani (11): > qemu: Move comments to virQEMUCapsGuestIsNative() > qemu: Don't duplicate binary name in capabilities > qemu: Move armv7l-on-aarch64 special case > qemu: Stop looking after finding the first binary > qemu: Expect a single binary in virQEMUCapsInitGuest() > qemu: Remove unnecessary variables > qemu: Don't look for "qemu-kvm" and "kvm" binaries > qemu: Simplify QEMU binary search > qemu: Rename qemubinCaps => qemuCaps > qemu: Refactor virQEMUCapsCacheLookupByArch() > qemu: Prefer qemu-system-* binaries > > src/qemu/qemu_capabilities.c | 170 +++++++----------- > src/qemu/qemu_capabilities.h | 4 +- > .../qemucaps2xmloutdata/caps_1.5.3.x86_64.xml | 4 +- > .../qemucaps2xmloutdata/caps_1.6.0.x86_64.xml | 4 +- > .../qemucaps2xmloutdata/caps_1.7.0.x86_64.xml | 4 +- > .../qemucaps2xmloutdata/caps_2.1.1.x86_64.xml | 4 +- > .../caps_2.10.0.aarch64.xml | 4 +- > .../qemucaps2xmloutdata/caps_2.10.0.ppc64.xml | 4 +- > .../qemucaps2xmloutdata/caps_2.10.0.s390x.xml | 4 +- > .../caps_2.10.0.x86_64.xml | 4 +- > .../qemucaps2xmloutdata/caps_2.11.0.s390x.xml | 4 +- > .../caps_2.11.0.x86_64.xml | 4 +- > .../caps_2.12.0.aarch64.xml | 4 +- > .../qemucaps2xmloutdata/caps_2.12.0.ppc64.xml | 4 +- > .../qemucaps2xmloutdata/caps_2.12.0.s390x.xml | 4 +- > .../caps_2.12.0.x86_64.xml | 4 +- > .../qemucaps2xmloutdata/caps_2.4.0.x86_64.xml | 4 +- > .../qemucaps2xmloutdata/caps_2.5.0.x86_64.xml | 4 +- > .../caps_2.6.0.aarch64.xml | 4 +- > .../qemucaps2xmloutdata/caps_2.6.0.ppc64.xml | 4 +- > .../qemucaps2xmloutdata/caps_2.6.0.x86_64.xml | 4 +- > .../qemucaps2xmloutdata/caps_2.7.0.s390x.xml | 4 +- > .../qemucaps2xmloutdata/caps_2.7.0.x86_64.xml | 4 +- > .../qemucaps2xmloutdata/caps_2.8.0.s390x.xml | 4 +- > .../qemucaps2xmloutdata/caps_2.8.0.x86_64.xml | 4 +- > .../qemucaps2xmloutdata/caps_2.9.0.ppc64.xml | 4 +- > .../qemucaps2xmloutdata/caps_2.9.0.s390x.xml | 4 +- > .../qemucaps2xmloutdata/caps_2.9.0.x86_64.xml | 4 +- > .../qemucaps2xmloutdata/caps_3.0.0.ppc64.xml | 4 +- > .../qemucaps2xmloutdata/caps_3.0.0.x86_64.xml | 4 +- > tests/qemucaps2xmltest.c | 2 - > 31 files changed, 97 insertions(+), 191 deletions(-) > ACK Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list