[libvirt] [PATCH 00/11] qemu: Improve / cleanup QEMU binary handling

Andrea Bolognani posted 11 patches 5 years, 7 months ago
Failed in applying to current master (apply log)
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(-)
[libvirt] [PATCH 00/11] qemu: Improve / cleanup QEMU binary handling
Posted by Andrea Bolognani 5 years, 7 months ago
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(-)

-- 
2.17.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 00/11] qemu: Improve / cleanup QEMU binary handling
Posted by Michal Privoznik 5 years, 7 months ago
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@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list