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
> Cc: Michael Mueller
> Cc: Christian Borntraeger
> Cc: Cornelia Huck
> Cc: Jiri Denemark
> Cc: libvir-list@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