[libvirt] [Qemu-devel] [PATCH v2 0/6] Add runnability info to query-cpu-definitions

Eduardo Habkost ehabkost at redhat.com
Mon Jun 20 20:09:18 UTC 2016


Ping? No other feedback on this?

On Mon, Jun 06, 2016 at 05:05:37PM -0300, Eduardo Habkost wrote:
> This series extends query-cpu-definitions to include an extra
> field: "unavailable-features". The new field can be used to find
> out reasons that prevent the CPU model from running in the
> current host.
> 
> This will return information based on the current machine and
> accelerator only. In the future we may extend these mechanisms to
> allow querying other machines and other accelerators without
> restarting QEMU, but it will require some reorganization of
> QEMU's main code.
> 
> This series is based on my 'x86-next' branch, at:
>   git://github.com/ehabkost/qemu.git x86-next
> 
> Changes v1 -> v2:
> * Fixed documentation to say "(since 2.7)"
> * Removed @runnable field, improved documentation
> 
> Example command output:
> 
>   { "return": [
>       {
>         "unavailable-features": [ "kvm" ],
>          "name": "host"
>       },
>       {
>         "unavailable-features": [],
>         "name": "qemu64"
>       },
>       {
>         "unavailable-features": [],
>         "name": "qemu32"
>       },
>       {
>         "unavailable-features": ["npt", "fxsr-opt", "vme"],
>         "name": "phenom"
>       },
>       {
>         "unavailable-features": ["vme"],
>         "name": "pentium3"
>       },
>       {
>         "unavailable-features": ["vme"],
>         "name": "pentium2"
>       },
>       {
>         "unavailable-features": ["vme"],
>         "name": "pentium"
>       },
>       {
>         "unavailable-features": ["vme"],
>         "name": "n270"
>       },
>       {
>         "unavailable-features": ["vme"],
>         "name": "kvm64"
>       },
>       {
>         "unavailable-features": ["vme"],
>         "name": "kvm32"
>       },
>       {
>         "unavailable-features": ["vme"],
>         "name": "coreduo"
>       },
>       {
>         "unavailable-features": ["vme"],
>         "name": "core2duo"
>       },
>       {
>         "unavailable-features": ["vme"],
>         "name": "athlon"
>       },
>       {
>         "unavailable-features": ["vme"],
>         "name": "Westmere"
>       },
>       {
>         "unavailable-features": ["xsavec", "3dnowprefetch", "rdseed", "rtm", "invpcid", "erms", "avx2", "hle", "rdrand", "f16c", "avx", "tsc-deadline", "x2apic", "pcid", "fma", "vme"],
>         "name": "Skylake-Client"
>       },
>       {
>         "unavailable-features": ["avx", "tsc-deadline", "x2apic", "vme"],
>         "name": "SandyBridge"
>       },
>       {
>         "unavailable-features": ["vme"],
>         "name": "Penryn"
>       },
>       {
>         "unavailable-features": ["tbm", "fma4", "xop", "3dnowprefetch", "misalignsse", "f16c", "avx", "fma", "vme"],
>         "name": "Opteron_G5"
>       },
>       {
>         "unavailable-features": ["fma4", "xop", "3dnowprefetch", "misalignsse", "avx", "vme"],
>         "name": "Opteron_G4"
>       },
>       {
>         "unavailable-features": ["misalignsse", "vme"],
>         "name": "Opteron_G3"
>       },
>       {
>         "unavailable-features": ["vme"],
>         "name": "Opteron_G2"
>       },
>       {
>         "unavailable-features": ["vme"],
>         "name": "Opteron_G1"
>       },
>       {
>         "unavailable-features": ["vme"],
>         "name": "Nehalem"
>       },
>       {
>         "unavailable-features": ["erms", "rdrand", "f16c", "avx", "tsc-deadline", "x2apic", "vme"],
>         "name": "IvyBridge"
>       },
>       {
>         "unavailable-features": ["rtm", "invpcid", "erms", "avx2", "hle", "rdrand", "f16c", "avx", "tsc-deadline", "x2apic", "pcid", "fma", "vme"],
>         "name": "Haswell"
>       },
>       {
>         "unavailable-features": ["invpcid", "erms", "avx2", "rdrand", "f16c", "avx", "tsc-deadline", "x2apic", "pcid", "fma", "vme"],
>         "name": "Haswell-noTSX"
>       },
>       {
>         "unavailable-features": ["vme"],
>         "name": "Conroe"
>       },
>       {
>         "unavailable-features": ["3dnowprefetch", "rdseed", "rtm", "invpcid", "erms", "avx2", "hle", "rdrand", "f16c", "avx", "tsc-deadline", "x2apic", "pcid", "fma", "vme"],
>         "name": "Broadwell"
>       },
>       {
>         "unavailable-features": ["3dnowprefetch", "rdseed", "invpcid", "erms", "avx2", "rdrand", "f16c", "avx", "tsc-deadline", "x2apic", "pcid", "fma", "vme"],
>         "name": "Broadwell-noTSX"
>       },
>       {
>         "unavailable-features": ["vme"],
>         "name": "486"
>       }
>   ]}
> 
> Cc: David Hildenbrand <dahi at linux.vnet.ibm.com>
> Cc: Michael Mueller <mimu at linux.vnet.ibm.com>
> Cc: Christian Borntraeger <borntraeger at de.ibm.com>
> Cc: Cornelia Huck <cornelia.huck at de.ibm.com>
> Cc: Jiri Denemark <jdenemar at redhat.com>
> Cc: libvir-list at redhat.com
> 
> Eduardo Habkost (6):
>   target-i386: List CPU models using subclass list
>   target-i386: Move warning code outside x86_cpu_filter_features()
>   target-i386: Define CPUID filtering functions before x86_cpu_list()
>   qmp: Add runnability information to query-cpu-definitions
>   target-i386: Use "-" instead of "_" on all feature names
>   target-i386: Return runnability information on query-cpu-definitions
> 
>  qapi-schema.json      |  23 ++++-
>  target-i386/cpu-qom.h |   4 +
>  target-i386/cpu.c     | 262 +++++++++++++++++++++++++++++++++++---------------
>  3 files changed, 209 insertions(+), 80 deletions(-)
> 
> -- 
> 2.5.5
> 
> 

-- 
Eduardo




More information about the libvir-list mailing list