]> xenbits.xensource.com Git - libvirt.git/commit
qemu: Add support for unavailable-features
authorJiri Denemark <jdenemar@redhat.com>
Thu, 21 Apr 2016 11:08:12 +0000 (13:08 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Mon, 28 Nov 2016 08:11:22 +0000 (09:11 +0100)
commita1adfb0f066149f1aab52613d5e67e8e9da0d489
treec6e863747ebe7d9d6bc8862a9d8a127ef33b1d9c
parentfe66e2fffec435fa9e8b4eb4b85f59014daf312d
qemu: Add support for unavailable-features

QEMU 2.8.0 adds support for unavailable-features in
query-cpu-definitions reply. The unavailable-features array lists CPU
features which prevent a corresponding CPU model from being usable on
current host. It can only be used when all the unavailable features are
disabled. Empty array means the CPU model can be used without
modifications.

We can use unavailable-features for providing CPU model usability info
in domain capabilities XML:

    <domainCapabilities>
      ...
      <cpu>
        <mode name='host-passthrough' supported='yes'/>
        <mode name='host-model' supported='yes'>
          <model fallback='allow'>Skylake-Client</model>
          ...
        </mode>
        <mode name='custom' supported='yes'>
          <model usable='yes'>qemu64</model>
          <model usable='yes'>qemu32</model>
          <model usable='no'>phenom</model>
          <model usable='yes'>pentium3</model>
          <model usable='yes'>pentium2</model>
          <model usable='yes'>pentium</model>
          <model usable='yes'>n270</model>
          <model usable='yes'>kvm64</model>
          <model usable='yes'>kvm32</model>
          <model usable='yes'>coreduo</model>
          <model usable='yes'>core2duo</model>
          <model usable='no'>athlon</model>
          <model usable='yes'>Westmere</model>
          <model usable='yes'>Skylake-Client</model>
          ...
        </mode>
      </cpu>
      ...
    </domainCapabilities>

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
src/qemu/qemu_monitor.h
src/qemu/qemu_monitor_json.c
tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml
tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
tests/qemumonitorjsontest.c
tests/qemuxml2argvtest.c