[libvirt] [PATCH 17/23] cputest: Add query-cpu-definitions reply for Core-i5-2540M

Jiri Denemark posted 23 patches 7 years, 7 months ago
There is a newer version of this series
[libvirt] [PATCH 17/23] cputest: Add query-cpu-definitions reply for Core-i5-2540M
Posted by Jiri Denemark 7 years, 7 months ago
The unavailable features do not make any difference in this case,
because this is a SandyBridge CPU which has an empty list of unavailable
features.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
 tests/cputest.c                                   |   2 +-
 tests/cputestdata/x86_64-cpuid-Core-i5-2540M.json | 362 ++++++++++++++++++++++
 2 files changed, 363 insertions(+), 1 deletion(-)

diff --git a/tests/cputest.c b/tests/cputest.c
index 18618ad309..1af467e5ee 100644
--- a/tests/cputest.c
+++ b/tests/cputest.c
@@ -1121,7 +1121,7 @@ mymain(void)
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Atom-D510", JSON_NONE);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Atom-N450", JSON_NONE);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i5-2500", JSON_HOST);
-    DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i5-2540M", JSON_HOST);
+    DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i5-2540M", JSON_MODELS);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i5-4670T", JSON_HOST);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i5-6600", JSON_HOST);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i7-2600", JSON_HOST);
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i5-2540M.json b/tests/cputestdata/x86_64-cpuid-Core-i5-2540M.json
index d813326f6f..a8ed64ed63 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i5-2540M.json
+++ b/tests/cputestdata/x86_64-cpuid-Core-i5-2540M.json
@@ -201,3 +201,365 @@
   },
   "id": "model-expansion"
 }
+
+{
+  "return": [
+    {
+      "typename": "max-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": false,
+      "static": false,
+      "name": "max"
+    },
+    {
+      "typename": "host-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": false,
+      "static": false,
+      "name": "host"
+    },
+    {
+      "typename": "base-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": true,
+      "name": "base"
+    },
+    {
+      "typename": "qemu64-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "qemu64"
+    },
+    {
+      "typename": "qemu32-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "qemu32"
+    },
+    {
+      "typename": "phenom-x86_64-cpu",
+      "unavailable-features": [
+        "mmxext",
+        "fxsr-opt",
+        "pdpe1gb",
+        "3dnowext",
+        "3dnow",
+        "abm",
+        "sse4a",
+        "npt"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "phenom"
+    },
+    {
+      "typename": "pentium3-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "pentium3"
+    },
+    {
+      "typename": "pentium2-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "pentium2"
+    },
+    {
+      "typename": "pentium-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "pentium"
+    },
+    {
+      "typename": "n270-x86_64-cpu",
+      "unavailable-features": [
+        "movbe"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "n270"
+    },
+    {
+      "typename": "kvm64-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "kvm64"
+    },
+    {
+      "typename": "kvm32-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "kvm32"
+    },
+    {
+      "typename": "coreduo-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "coreduo"
+    },
+    {
+      "typename": "core2duo-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "core2duo"
+    },
+    {
+      "typename": "athlon-x86_64-cpu",
+      "unavailable-features": [
+        "mmxext",
+        "3dnowext",
+        "3dnow"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "athlon"
+    },
+    {
+      "typename": "Westmere-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "Westmere"
+    },
+    {
+      "typename": "Skylake-Client-x86_64-cpu",
+      "unavailable-features": [
+        "fma",
+        "movbe",
+        "f16c",
+        "rdrand",
+        "fsgsbase",
+        "bmi1",
+        "hle",
+        "avx2",
+        "smep",
+        "bmi2",
+        "erms",
+        "invpcid",
+        "rtm",
+        "mpx",
+        "rdseed",
+        "adx",
+        "smap",
+        "abm",
+        "3dnowprefetch",
+        "xsavec",
+        "xgetbv1",
+        "mpx",
+        "mpx"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Skylake-Client"
+    },
+    {
+      "typename": "SandyBridge-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "SandyBridge"
+    },
+    {
+      "typename": "Penryn-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "Penryn"
+    },
+    {
+      "typename": "Opteron_G5-x86_64-cpu",
+      "unavailable-features": [
+        "fma",
+        "f16c",
+        "pdpe1gb",
+        "abm",
+        "sse4a",
+        "misalignsse",
+        "3dnowprefetch",
+        "xop",
+        "fma4",
+        "tbm"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Opteron_G5"
+    },
+    {
+      "typename": "Opteron_G4-x86_64-cpu",
+      "unavailable-features": [
+        "pdpe1gb",
+        "abm",
+        "sse4a",
+        "misalignsse",
+        "3dnowprefetch",
+        "xop",
+        "fma4"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Opteron_G4"
+    },
+    {
+      "typename": "Opteron_G3-x86_64-cpu",
+      "unavailable-features": [
+        "abm",
+        "sse4a",
+        "misalignsse"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Opteron_G3"
+    },
+    {
+      "typename": "Opteron_G2-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "Opteron_G2"
+    },
+    {
+      "typename": "Opteron_G1-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "Opteron_G1"
+    },
+    {
+      "typename": "Nehalem-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "Nehalem"
+    },
+    {
+      "typename": "IvyBridge-x86_64-cpu",
+      "unavailable-features": [
+        "f16c",
+        "rdrand",
+        "fsgsbase",
+        "smep",
+        "erms"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "IvyBridge"
+    },
+    {
+      "typename": "Haswell-x86_64-cpu",
+      "unavailable-features": [
+        "fma",
+        "movbe",
+        "f16c",
+        "rdrand",
+        "fsgsbase",
+        "bmi1",
+        "hle",
+        "avx2",
+        "smep",
+        "bmi2",
+        "erms",
+        "invpcid",
+        "rtm",
+        "abm"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Haswell"
+    },
+    {
+      "typename": "Haswell-noTSX-x86_64-cpu",
+      "unavailable-features": [
+        "fma",
+        "movbe",
+        "f16c",
+        "rdrand",
+        "fsgsbase",
+        "bmi1",
+        "avx2",
+        "smep",
+        "bmi2",
+        "erms",
+        "invpcid",
+        "abm"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Haswell-noTSX"
+    },
+    {
+      "typename": "Conroe-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "Conroe"
+    },
+    {
+      "typename": "Broadwell-x86_64-cpu",
+      "unavailable-features": [
+        "fma",
+        "movbe",
+        "f16c",
+        "rdrand",
+        "fsgsbase",
+        "bmi1",
+        "hle",
+        "avx2",
+        "smep",
+        "bmi2",
+        "erms",
+        "invpcid",
+        "rtm",
+        "rdseed",
+        "adx",
+        "smap",
+        "abm",
+        "3dnowprefetch"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Broadwell"
+    },
+    {
+      "typename": "Broadwell-noTSX-x86_64-cpu",
+      "unavailable-features": [
+        "fma",
+        "movbe",
+        "f16c",
+        "rdrand",
+        "fsgsbase",
+        "bmi1",
+        "avx2",
+        "smep",
+        "bmi2",
+        "erms",
+        "invpcid",
+        "rdseed",
+        "adx",
+        "smap",
+        "abm",
+        "3dnowprefetch"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Broadwell-noTSX"
+    },
+    {
+      "typename": "486-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "486"
+    }
+  ],
+  "id": "definitions"
+}
-- 
2.14.2

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 17/23] cputest: Add query-cpu-definitions reply for Core-i5-2540M
Posted by John Ferlan 7 years, 7 months ago

On 10/04/2017 10:58 AM, Jiri Denemark wrote:
> The unavailable features do not make any difference in this case,
> because this is a SandyBridge CPU which has an empty list of unavailable
> features.
> 
> Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
> ---
>  tests/cputest.c                                   |   2 +-
>  tests/cputestdata/x86_64-cpuid-Core-i5-2540M.json | 362 ++++++++++++++++++++++
>  2 files changed, 363 insertions(+), 1 deletion(-)
> 

[...]

> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i5-2540M.json b/tests/cputestdata/x86_64-cpuid-Core-i5-2540M.json
> index d813326f6f..a8ed64ed63 100644
> --- a/tests/cputestdata/x86_64-cpuid-Core-i5-2540M.json
> +++ b/tests/cputestdata/x86_64-cpuid-Core-i5-2540M.json

[...]

> +    {
> +      "typename": "Skylake-Client-x86_64-cpu",
> +      "unavailable-features": [
> +        "fma",
> +        "movbe",
> +        "f16c",
> +        "rdrand",
> +        "fsgsbase",
> +        "bmi1",
> +        "hle",
> +        "avx2",
> +        "smep",
> +        "bmi2",
> +        "erms",
> +        "invpcid",
> +        "rtm",
> +        "mpx",
> +        "rdseed",
> +        "adx",
> +        "smap",
> +        "abm",
> +        "3dnowprefetch",
> +        "xsavec",
> +        "xgetbv1",
> +        "mpx",
> +        "mpx"

Is this a typo or bad cut-n-paste - "mpx" three times in the list?

> +      ],
> +      "migration-safe": true,
> +      "static": false,
> +      "name": "Skylake-Client"
> +    },

Others seemed fine... Tried looking through QEMU sources - got lost
quickly and gave up.

Reviewed-by: John Ferlan <jferlan@redhat.com>

John

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 17/23] cputest: Add query-cpu-definitions reply for Core-i5-2540M
Posted by Jiri Denemark 7 years, 7 months ago
On Thu, Oct 12, 2017 at 17:49:33 -0400, John Ferlan wrote:
> 
> 
> On 10/04/2017 10:58 AM, Jiri Denemark wrote:
> > The unavailable features do not make any difference in this case,
> > because this is a SandyBridge CPU which has an empty list of unavailable
> > features.
...
> > diff --git a/tests/cputestdata/x86_64-cpuid-Core-i5-2540M.json b/tests/cputestdata/x86_64-cpuid-Core-i5-2540M.json
> > index d813326f6f..a8ed64ed63 100644
> > --- a/tests/cputestdata/x86_64-cpuid-Core-i5-2540M.json
> > +++ b/tests/cputestdata/x86_64-cpuid-Core-i5-2540M.json
> 
> [...]
> 
> > +    {
> > +      "typename": "Skylake-Client-x86_64-cpu",
> > +      "unavailable-features": [
...
> > +        "mpx",
> > +        "mpx"
> 
> Is this a typo or bad cut-n-paste - "mpx" three times in the list?

It looks like a bug in QEMU since this is just a copy of real QEMU's
reply on a host with this CPU. Some unavailable features appear more
that once in the list (you can see it the following patches too). We
don't care as long as each unavailable feature is there at least once.

Jirka

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list