* [Qemu-devel] [PATCH 0/3] Opteron_G5 and Haswell CPU models
@ 2012-11-14 18:28 Eduardo Habkost
2012-11-14 18:28 ` [Qemu-devel] [PATCH 1/3] target-i386: cpu: name new CPUID bits Eduardo Habkost
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Eduardo Habkost @ 2012-11-14 18:28 UTC (permalink / raw)
To: qemu-devel; +Cc: Anthony Liguori
I'm resending the patches sent by Boris Ostrovsky previously, as it has to be
rebased against latest qemu.git, and to add a new Haswell CPU model too.
Andre Przywara (2):
target-i386: cpu: name new CPUID bits
target-i386: cpu: add new Opteron CPU model
Eduardo Habkost (1):
target-i386: add Haswell CPU model
target-i386/cpu.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
target-i386/cpu.h | 22 +++++++++++++++++
2 files changed, 89 insertions(+), 6 deletions(-)
--
1.7.11.7
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Qemu-devel] [PATCH 1/3] target-i386: cpu: name new CPUID bits
2012-11-14 18:28 [Qemu-devel] [PATCH 0/3] Opteron_G5 and Haswell CPU models Eduardo Habkost
@ 2012-11-14 18:28 ` Eduardo Habkost
2012-11-15 2:10 ` Igor Mammedov
2012-11-14 18:28 ` [Qemu-devel] [PATCH 2/3] target-i386: cpu: add new Opteron CPU model Eduardo Habkost
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Eduardo Habkost @ 2012-11-14 18:28 UTC (permalink / raw)
To: qemu-devel; +Cc: boris.ostrovsky, osp, donald.d.dugger, Anthony Liguori
From: Andre Przywara <osp@andrep.de>
Update QEMU's knowledge of CPUID bit names. This allows to
enable/disable those new features on QEMU's command line when
using KVM and prepares future feature enablement in QEMU.
This adds F16C, RDRAND, LWP, TBM, TopoExt, PerfCtr_Core, PerfCtr_NB,
FSGSBASE, BMI1, AVX2, BMI2, ERMS, PCID, InvPCID, RTM, RDSeed and ADX.
Sources where the AMD BKDG for Family 15h/Model 10h, Intel Software Developer
Manual, and the Linux kernel for the leaf 7 bits.
Signed-off-by: Andre Przywara <osp@andrep.de>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@amd.com>
[ehabkost: added CPUID_EXT_PCID]
[ehabkost: edited commit message]
[ehabkost: rebased against latest qemu.git master]
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
Cc: boris.ostrovsky@amd.com, osp@andrep.de
Cc: donald.d.dugger@intel.com
target-i386/cpu.c | 12 ++++++------
target-i386/cpu.h | 22 ++++++++++++++++++++++
2 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index e1db639..f896e0c 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -66,7 +66,7 @@ static const char *ext_feature_name[] = {
NULL, "pcid", "dca", "sse4.1|sse4_1",
"sse4.2|sse4_2", "x2apic", "movbe", "popcnt",
"tsc-deadline", "aes", "xsave", "osxsave",
- "avx", NULL, NULL, "hypervisor",
+ "avx", "f16c", "rdrand", "hypervisor",
};
/* Feature names that are already defined on feature_name[] but are set on
* CPUID[8000_0001].EDX on AMD CPUs don't have their names on
@@ -87,10 +87,10 @@ static const char *ext3_feature_name[] = {
"lahf_lm" /* AMD LahfSahf */, "cmp_legacy", "svm", "extapic" /* AMD ExtApicSpace */,
"cr8legacy" /* AMD AltMovCr8 */, "abm", "sse4a", "misalignsse",
"3dnowprefetch", "osvw", "ibs", "xop",
- "skinit", "wdt", NULL, NULL,
- "fma4", NULL, "cvt16", "nodeid_msr",
- NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL,
+ "skinit", "wdt", NULL, "lwp",
+ "fma4", "tce", NULL, "nodeid_msr",
+ NULL, "tbm", "topoext", "perfctr_core",
+ "perfctr_nb", NULL, NULL, NULL,
NULL, NULL, NULL, NULL,
};
@@ -119,7 +119,7 @@ static const char *svm_feature_name[] = {
static const char *cpuid_7_0_ebx_feature_name[] = {
"fsgsbase", NULL, NULL, "bmi1", "hle", "avx2", NULL, "smep",
"bmi2", "erms", "invpcid", "rtm", NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, "smap", NULL, NULL, NULL,
+ NULL, NULL, "rdseed", "adx", "smap", NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
};
diff --git a/target-i386/cpu.h b/target-i386/cpu.h
index cdc59dc..90ef1ff 100644
--- a/target-i386/cpu.h
+++ b/target-i386/cpu.h
@@ -403,9 +403,11 @@
#define CPUID_EXT_TM2 (1 << 8)
#define CPUID_EXT_SSSE3 (1 << 9)
#define CPUID_EXT_CID (1 << 10)
+#define CPUID_EXT_FMA (1 << 12)
#define CPUID_EXT_CX16 (1 << 13)
#define CPUID_EXT_XTPR (1 << 14)
#define CPUID_EXT_PDCM (1 << 15)
+#define CPUID_EXT_PCID (1 << 17)
#define CPUID_EXT_DCA (1 << 18)
#define CPUID_EXT_SSE41 (1 << 19)
#define CPUID_EXT_SSE42 (1 << 20)
@@ -417,6 +419,8 @@
#define CPUID_EXT_XSAVE (1 << 26)
#define CPUID_EXT_OSXSAVE (1 << 27)
#define CPUID_EXT_AVX (1 << 28)
+#define CPUID_EXT_F16C (1 << 29)
+#define CPUID_EXT_RDRAND (1 << 30)
#define CPUID_EXT_HYPERVISOR (1 << 31)
#define CPUID_EXT2_FPU (1 << 0)
@@ -472,7 +476,15 @@
#define CPUID_EXT3_IBS (1 << 10)
#define CPUID_EXT3_XOP (1 << 11)
#define CPUID_EXT3_SKINIT (1 << 12)
+#define CPUID_EXT3_WDT (1 << 13)
+#define CPUID_EXT3_LWP (1 << 15)
#define CPUID_EXT3_FMA4 (1 << 16)
+#define CPUID_EXT3_TCE (1 << 17)
+#define CPUID_EXT3_NODEID (1 << 19)
+#define CPUID_EXT3_TBM (1 << 21)
+#define CPUID_EXT3_TOPOEXT (1 << 22)
+#define CPUID_EXT3_PERFCORE (1 << 23)
+#define CPUID_EXT3_PERFNB (1 << 24)
#define CPUID_SVM_NPT (1 << 0)
#define CPUID_SVM_LBRV (1 << 1)
@@ -485,7 +497,17 @@
#define CPUID_SVM_PAUSEFILTER (1 << 10)
#define CPUID_SVM_PFTHRESHOLD (1 << 12)
+#define CPUID_7_0_EBX_FSGSBASE (1 << 0)
+#define CPUID_7_0_EBX_BMI1 (1 << 3)
+#define CPUID_7_0_EBX_HLE (1 << 4)
+#define CPUID_7_0_EBX_AVX2 (1 << 5)
#define CPUID_7_0_EBX_SMEP (1 << 7)
+#define CPUID_7_0_EBX_BMI2 (1 << 8)
+#define CPUID_7_0_EBX_ERMS (1 << 9)
+#define CPUID_7_0_EBX_INVPCID (1 << 10)
+#define CPUID_7_0_EBX_RTM (1 << 11)
+#define CPUID_7_0_EBX_RDSEED (1 << 18)
+#define CPUID_7_0_EBX_ADX (1 << 19)
#define CPUID_7_0_EBX_SMAP (1 << 20)
#define CPUID_VENDOR_INTEL_1 0x756e6547 /* "Genu" */
--
1.7.11.7
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Qemu-devel] [PATCH 2/3] target-i386: cpu: add new Opteron CPU model
2012-11-14 18:28 [Qemu-devel] [PATCH 0/3] Opteron_G5 and Haswell CPU models Eduardo Habkost
2012-11-14 18:28 ` [Qemu-devel] [PATCH 1/3] target-i386: cpu: name new CPUID bits Eduardo Habkost
@ 2012-11-14 18:28 ` Eduardo Habkost
2012-11-15 2:11 ` Igor Mammedov
2012-11-14 18:28 ` [Qemu-devel] [PATCH 3/3] target-i386: add Haswell " Eduardo Habkost
2012-11-14 20:29 ` [Qemu-devel] [PATCH 0/3] Opteron_G5 and Haswell CPU models Eduardo Habkost
3 siblings, 1 reply; 9+ messages in thread
From: Eduardo Habkost @ 2012-11-14 18:28 UTC (permalink / raw)
To: qemu-devel; +Cc: boris.ostrovsky, osp, Anthony Liguori
From: Andre Przywara <osp@andrep.de>
Add a new base CPU model called Opteron_G5 to model the latest
Opteron CPUs. This increases the model value and model numbers and
adds TBM, F16C and FMA over the latest G4 model.
Signed-off-by: Andre Przywara <osp@andrep.de>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@amd.com>
[ehabkost: edited commit message]
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
Cc: boris.ostrovsky@amd.com, osp@andrep.de
target-i386/cpu.c | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index f896e0c..c3aff4f 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -756,6 +756,38 @@ static x86_def_t builtin_x86_defs[] = {
.xlevel = 0x8000001A,
.model_id = "AMD Opteron 62xx class CPU",
},
+ {
+ .name = "Opteron_G5",
+ .level = 0xd,
+ .vendor1 = CPUID_VENDOR_AMD_1,
+ .vendor2 = CPUID_VENDOR_AMD_2,
+ .vendor3 = CPUID_VENDOR_AMD_3,
+ .family = 21,
+ .model = 2,
+ .stepping = 0,
+ .features = CPUID_SSE2 | CPUID_SSE | CPUID_FXSR | CPUID_MMX |
+ CPUID_CLFLUSH | CPUID_PSE36 | CPUID_PAT | CPUID_CMOV | CPUID_MCA |
+ CPUID_PGE | CPUID_MTRR | CPUID_SEP | CPUID_APIC | CPUID_CX8 |
+ CPUID_MCE | CPUID_PAE | CPUID_MSR | CPUID_TSC | CPUID_PSE |
+ CPUID_DE | CPUID_FP87,
+ .ext_features = CPUID_EXT_F16C | CPUID_EXT_AVX | CPUID_EXT_XSAVE |
+ CPUID_EXT_AES | CPUID_EXT_POPCNT | CPUID_EXT_SSE42 |
+ CPUID_EXT_SSE41 | CPUID_EXT_CX16 | CPUID_EXT_FMA |
+ CPUID_EXT_SSSE3 | CPUID_EXT_PCLMULQDQ | CPUID_EXT_SSE3,
+ .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_RDTSCP |
+ CPUID_EXT2_PDPE1GB | CPUID_EXT2_FXSR | CPUID_EXT2_MMX |
+ CPUID_EXT2_NX | CPUID_EXT2_PSE36 | CPUID_EXT2_PAT |
+ CPUID_EXT2_CMOV | CPUID_EXT2_MCA | CPUID_EXT2_PGE |
+ CPUID_EXT2_MTRR | CPUID_EXT2_SYSCALL | CPUID_EXT2_APIC |
+ CPUID_EXT2_CX8 | CPUID_EXT2_MCE | CPUID_EXT2_PAE | CPUID_EXT2_MSR |
+ CPUID_EXT2_TSC | CPUID_EXT2_PSE | CPUID_EXT2_DE | CPUID_EXT2_FPU,
+ .ext3_features = CPUID_EXT3_TBM | CPUID_EXT3_FMA4 | CPUID_EXT3_XOP |
+ CPUID_EXT3_3DNOWPREFETCH | CPUID_EXT3_MISALIGNSSE |
+ CPUID_EXT3_SSE4A | CPUID_EXT3_ABM | CPUID_EXT3_SVM |
+ CPUID_EXT3_LAHF_LM,
+ .xlevel = 0x8000001A,
+ .model_id = "AMD Opteron 63xx class CPU",
+ },
};
#ifdef CONFIG_KVM
--
1.7.11.7
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Qemu-devel] [PATCH 3/3] target-i386: add Haswell CPU model
2012-11-14 18:28 [Qemu-devel] [PATCH 0/3] Opteron_G5 and Haswell CPU models Eduardo Habkost
2012-11-14 18:28 ` [Qemu-devel] [PATCH 1/3] target-i386: cpu: name new CPUID bits Eduardo Habkost
2012-11-14 18:28 ` [Qemu-devel] [PATCH 2/3] target-i386: cpu: add new Opteron CPU model Eduardo Habkost
@ 2012-11-14 18:28 ` Eduardo Habkost
2012-11-15 2:14 ` Igor Mammedov
2012-11-14 20:29 ` [Qemu-devel] [PATCH 0/3] Opteron_G5 and Haswell CPU models Eduardo Habkost
3 siblings, 1 reply; 9+ messages in thread
From: Eduardo Habkost @ 2012-11-14 18:28 UTC (permalink / raw)
To: qemu-devel; +Cc: donald.d.dugger, Anthony Liguori
Features added to the model, in relation to SandyBridge:
fma CPUID[1].ECX[12]
pcid CPUID[1].ECX[17]
movbe CPUID[1].ECX[22]
fsgsbase CPUID[EAX=7,ECX=0].EBX[0]
bmi1 CPUID[EAX=7,ECX=0].EBX[3]
hle CPUID[EAX=7,ECX=0].EBX[4]
avx2 CPUID[EAX=7,ECX=0].EBX[5]
smep CPUID[EAX=7,ECX=0].EBX[7]
bmi2 CPUID[EAX=7,ECX=0].EBX[8]
erms CPUID[EAX=7,ECX=0].EBX[9]
invpcid CPUID[EAX=7,ECX=0].EBX[10]
rtm CPUID[EAX=7,ECX=0].EBX[11]
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
Cc: donald.d.dugger@intel.com
target-i386/cpu.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index c3aff4f..64c3491 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -647,6 +647,35 @@ static x86_def_t builtin_x86_defs[] = {
.model_id = "Intel Xeon E312xx (Sandy Bridge)",
},
{
+ .name = "Haswell",
+ .level = 0xd,
+ .vendor1 = CPUID_VENDOR_INTEL_1,
+ .vendor2 = CPUID_VENDOR_INTEL_2,
+ .vendor3 = CPUID_VENDOR_INTEL_3,
+ .family = 6,
+ .model = 60,
+ .stepping = 1,
+ .features = CPUID_SSE2 | CPUID_SSE | CPUID_FXSR | CPUID_MMX |
+ CPUID_CLFLUSH | CPUID_PSE36 | CPUID_PAT | CPUID_CMOV | CPUID_MCA |
+ CPUID_PGE | CPUID_MTRR | CPUID_APIC | CPUID_CX8 |
+ CPUID_MCE | CPUID_PAE | CPUID_MSR | CPUID_TSC | CPUID_PSE |
+ CPUID_DE | CPUID_FP87,
+ .ext_features = CPUID_EXT_AVX | CPUID_EXT_XSAVE | CPUID_EXT_AES |
+ CPUID_EXT_POPCNT | CPUID_EXT_X2APIC | CPUID_EXT_SSE42 |
+ CPUID_EXT_SSE41 | CPUID_EXT_CX16 | CPUID_EXT_SSSE3 |
+ CPUID_EXT_PCLMULQDQ | CPUID_EXT_SSE3 |
+ CPUID_EXT_TSC_DEADLINE_TIMER | CPUID_EXT_FMA | CPUID_EXT_MOVBE |
+ CPUID_EXT_PCID,
+ .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_NX | CPUID_EXT2_SYSCALL,
+ .ext3_features = CPUID_EXT3_LAHF_LM,
+ .cpuid_7_0_ebx_features = CPUID_7_0_EBX_FSGSBASE | CPUID_7_0_EBX_BMI1 |
+ CPUID_7_0_EBX_HLE | CPUID_7_0_EBX_AVX2 | CPUID_7_0_EBX_SMEP |
+ CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_ERMS | CPUID_7_0_EBX_INVPCID |
+ CPUID_7_0_EBX_RTM,
+ .xlevel = 0x8000000A,
+ .model_id = "Intel Core Processor (Haswell)",
+ },
+ {
.name = "Opteron_G1",
.level = 5,
.vendor1 = CPUID_VENDOR_AMD_1,
--
1.7.11.7
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH 0/3] Opteron_G5 and Haswell CPU models
2012-11-14 18:28 [Qemu-devel] [PATCH 0/3] Opteron_G5 and Haswell CPU models Eduardo Habkost
` (2 preceding siblings ...)
2012-11-14 18:28 ` [Qemu-devel] [PATCH 3/3] target-i386: add Haswell " Eduardo Habkost
@ 2012-11-14 20:29 ` Eduardo Habkost
2012-11-15 3:30 ` Andreas Färber
3 siblings, 1 reply; 9+ messages in thread
From: Eduardo Habkost @ 2012-11-14 20:29 UTC (permalink / raw)
To: qemu-devel; +Cc: Andreas Färber, Anthony Liguori
Andreas, I just noticed that I didn't CC you in this series, and I don't
know if this is something that would go through your tree. Should I CC
you on x86-specific series unrelated to QOM, like this one?
On Wed, Nov 14, 2012 at 04:28:51PM -0200, Eduardo Habkost wrote:
> I'm resending the patches sent by Boris Ostrovsky previously, as it has to be
> rebased against latest qemu.git, and to add a new Haswell CPU model too.
>
> Andre Przywara (2):
> target-i386: cpu: name new CPUID bits
> target-i386: cpu: add new Opteron CPU model
>
> Eduardo Habkost (1):
> target-i386: add Haswell CPU model
>
> target-i386/cpu.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
> target-i386/cpu.h | 22 +++++++++++++++++
> 2 files changed, 89 insertions(+), 6 deletions(-)
>
> --
> 1.7.11.7
>
>
--
Eduardo
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH 1/3] target-i386: cpu: name new CPUID bits
2012-11-14 18:28 ` [Qemu-devel] [PATCH 1/3] target-i386: cpu: name new CPUID bits Eduardo Habkost
@ 2012-11-15 2:10 ` Igor Mammedov
0 siblings, 0 replies; 9+ messages in thread
From: Igor Mammedov @ 2012-11-15 2:10 UTC (permalink / raw)
To: Eduardo Habkost
Cc: Anthony Liguori, boris.ostrovsky, osp, qemu-devel,
donald.d.dugger
On Wed, 14 Nov 2012 16:28:52 -0200
Eduardo Habkost <ehabkost@redhat.com> wrote:
> From: Andre Przywara <osp@andrep.de>
>
> Update QEMU's knowledge of CPUID bit names. This allows to
> enable/disable those new features on QEMU's command line when
> using KVM and prepares future feature enablement in QEMU.
>
> This adds F16C, RDRAND, LWP, TBM, TopoExt, PerfCtr_Core, PerfCtr_NB,
> FSGSBASE, BMI1, AVX2, BMI2, ERMS, PCID, InvPCID, RTM, RDSeed and ADX.
>
> Sources where the AMD BKDG for Family 15h/Model 10h, Intel Software Developer
> Manual, and the Linux kernel for the leaf 7 bits.
>
> Signed-off-by: Andre Przywara <osp@andrep.de>
> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@amd.com>
> [ehabkost: added CPUID_EXT_PCID]
> [ehabkost: edited commit message]
> [ehabkost: rebased against latest qemu.git master]
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
> Cc: boris.ostrovsky@amd.com, osp@andrep.de
> Cc: donald.d.dugger@intel.com
>
> target-i386/cpu.c | 12 ++++++------
> target-i386/cpu.h | 22 ++++++++++++++++++++++
> 2 files changed, 28 insertions(+), 6 deletions(-)
>
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index e1db639..f896e0c 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -66,7 +66,7 @@ static const char *ext_feature_name[] = {
> NULL, "pcid", "dca", "sse4.1|sse4_1",
> "sse4.2|sse4_2", "x2apic", "movbe", "popcnt",
> "tsc-deadline", "aes", "xsave", "osxsave",
> - "avx", NULL, NULL, "hypervisor",
> + "avx", "f16c", "rdrand", "hypervisor",
> };
> /* Feature names that are already defined on feature_name[] but are set on
> * CPUID[8000_0001].EDX on AMD CPUs don't have their names on
> @@ -87,10 +87,10 @@ static const char *ext3_feature_name[] = {
> "lahf_lm" /* AMD LahfSahf */, "cmp_legacy", "svm", "extapic" /* AMD ExtApicSpace */,
> "cr8legacy" /* AMD AltMovCr8 */, "abm", "sse4a", "misalignsse",
> "3dnowprefetch", "osvw", "ibs", "xop",
> - "skinit", "wdt", NULL, NULL,
> - "fma4", NULL, "cvt16", "nodeid_msr",
> - NULL, NULL, NULL, NULL,
> - NULL, NULL, NULL, NULL,
> + "skinit", "wdt", NULL, "lwp",
> + "fma4", "tce", NULL, "nodeid_msr",
> + NULL, "tbm", "topoext", "perfctr_core",
> + "perfctr_nb", NULL, NULL, NULL,
> NULL, NULL, NULL, NULL,
> };
>
> @@ -119,7 +119,7 @@ static const char *svm_feature_name[] = {
> static const char *cpuid_7_0_ebx_feature_name[] = {
> "fsgsbase", NULL, NULL, "bmi1", "hle", "avx2", NULL, "smep",
> "bmi2", "erms", "invpcid", "rtm", NULL, NULL, NULL, NULL,
> - NULL, NULL, NULL, NULL, "smap", NULL, NULL, NULL,
> + NULL, NULL, "rdseed", "adx", "smap", NULL, NULL, NULL,
> NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
> };
>
> diff --git a/target-i386/cpu.h b/target-i386/cpu.h
> index cdc59dc..90ef1ff 100644
> --- a/target-i386/cpu.h
> +++ b/target-i386/cpu.h
> @@ -403,9 +403,11 @@
> #define CPUID_EXT_TM2 (1 << 8)
> #define CPUID_EXT_SSSE3 (1 << 9)
> #define CPUID_EXT_CID (1 << 10)
> +#define CPUID_EXT_FMA (1 << 12)
> #define CPUID_EXT_CX16 (1 << 13)
> #define CPUID_EXT_XTPR (1 << 14)
> #define CPUID_EXT_PDCM (1 << 15)
> +#define CPUID_EXT_PCID (1 << 17)
> #define CPUID_EXT_DCA (1 << 18)
> #define CPUID_EXT_SSE41 (1 << 19)
> #define CPUID_EXT_SSE42 (1 << 20)
> @@ -417,6 +419,8 @@
> #define CPUID_EXT_XSAVE (1 << 26)
> #define CPUID_EXT_OSXSAVE (1 << 27)
> #define CPUID_EXT_AVX (1 << 28)
> +#define CPUID_EXT_F16C (1 << 29)
> +#define CPUID_EXT_RDRAND (1 << 30)
> #define CPUID_EXT_HYPERVISOR (1 << 31)
>
> #define CPUID_EXT2_FPU (1 << 0)
> @@ -472,7 +476,15 @@
> #define CPUID_EXT3_IBS (1 << 10)
> #define CPUID_EXT3_XOP (1 << 11)
> #define CPUID_EXT3_SKINIT (1 << 12)
> +#define CPUID_EXT3_WDT (1 << 13)
> +#define CPUID_EXT3_LWP (1 << 15)
> #define CPUID_EXT3_FMA4 (1 << 16)
> +#define CPUID_EXT3_TCE (1 << 17)
> +#define CPUID_EXT3_NODEID (1 << 19)
> +#define CPUID_EXT3_TBM (1 << 21)
> +#define CPUID_EXT3_TOPOEXT (1 << 22)
> +#define CPUID_EXT3_PERFCORE (1 << 23)
> +#define CPUID_EXT3_PERFNB (1 << 24)
>
> #define CPUID_SVM_NPT (1 << 0)
> #define CPUID_SVM_LBRV (1 << 1)
> @@ -485,7 +497,17 @@
> #define CPUID_SVM_PAUSEFILTER (1 << 10)
> #define CPUID_SVM_PFTHRESHOLD (1 << 12)
>
> +#define CPUID_7_0_EBX_FSGSBASE (1 << 0)
> +#define CPUID_7_0_EBX_BMI1 (1 << 3)
> +#define CPUID_7_0_EBX_HLE (1 << 4)
> +#define CPUID_7_0_EBX_AVX2 (1 << 5)
> #define CPUID_7_0_EBX_SMEP (1 << 7)
> +#define CPUID_7_0_EBX_BMI2 (1 << 8)
> +#define CPUID_7_0_EBX_ERMS (1 << 9)
> +#define CPUID_7_0_EBX_INVPCID (1 << 10)
> +#define CPUID_7_0_EBX_RTM (1 << 11)
> +#define CPUID_7_0_EBX_RDSEED (1 << 18)
> +#define CPUID_7_0_EBX_ADX (1 << 19)
> #define CPUID_7_0_EBX_SMAP (1 << 20)
>
> #define CPUID_VENDOR_INTEL_1 0x756e6547 /* "Genu" */
> --
> 1.7.11.7
>
>
Reviewed-By: Igor Mammedov <imammedo@redhat.com>
--
Regards,
Igor
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH 2/3] target-i386: cpu: add new Opteron CPU model
2012-11-14 18:28 ` [Qemu-devel] [PATCH 2/3] target-i386: cpu: add new Opteron CPU model Eduardo Habkost
@ 2012-11-15 2:11 ` Igor Mammedov
0 siblings, 0 replies; 9+ messages in thread
From: Igor Mammedov @ 2012-11-15 2:11 UTC (permalink / raw)
To: Eduardo Habkost; +Cc: boris.ostrovsky, osp, qemu-devel, Anthony Liguori
On Wed, 14 Nov 2012 16:28:53 -0200
Eduardo Habkost <ehabkost@redhat.com> wrote:
> From: Andre Przywara <osp@andrep.de>
>
> Add a new base CPU model called Opteron_G5 to model the latest
> Opteron CPUs. This increases the model value and model numbers and
> adds TBM, F16C and FMA over the latest G4 model.
>
> Signed-off-by: Andre Przywara <osp@andrep.de>
> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@amd.com>
> [ehabkost: edited commit message]
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
> Cc: boris.ostrovsky@amd.com, osp@andrep.de
>
> target-i386/cpu.c | 32 ++++++++++++++++++++++++++++++++
> 1 file changed, 32 insertions(+)
>
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index f896e0c..c3aff4f 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -756,6 +756,38 @@ static x86_def_t builtin_x86_defs[] = {
> .xlevel = 0x8000001A,
> .model_id = "AMD Opteron 62xx class CPU",
> },
> + {
> + .name = "Opteron_G5",
> + .level = 0xd,
> + .vendor1 = CPUID_VENDOR_AMD_1,
> + .vendor2 = CPUID_VENDOR_AMD_2,
> + .vendor3 = CPUID_VENDOR_AMD_3,
> + .family = 21,
> + .model = 2,
> + .stepping = 0,
> + .features = CPUID_SSE2 | CPUID_SSE | CPUID_FXSR | CPUID_MMX |
> + CPUID_CLFLUSH | CPUID_PSE36 | CPUID_PAT | CPUID_CMOV | CPUID_MCA |
> + CPUID_PGE | CPUID_MTRR | CPUID_SEP | CPUID_APIC | CPUID_CX8 |
> + CPUID_MCE | CPUID_PAE | CPUID_MSR | CPUID_TSC | CPUID_PSE |
> + CPUID_DE | CPUID_FP87,
> + .ext_features = CPUID_EXT_F16C | CPUID_EXT_AVX | CPUID_EXT_XSAVE |
> + CPUID_EXT_AES | CPUID_EXT_POPCNT | CPUID_EXT_SSE42 |
> + CPUID_EXT_SSE41 | CPUID_EXT_CX16 | CPUID_EXT_FMA |
> + CPUID_EXT_SSSE3 | CPUID_EXT_PCLMULQDQ | CPUID_EXT_SSE3,
> + .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_RDTSCP |
> + CPUID_EXT2_PDPE1GB | CPUID_EXT2_FXSR | CPUID_EXT2_MMX |
> + CPUID_EXT2_NX | CPUID_EXT2_PSE36 | CPUID_EXT2_PAT |
> + CPUID_EXT2_CMOV | CPUID_EXT2_MCA | CPUID_EXT2_PGE |
> + CPUID_EXT2_MTRR | CPUID_EXT2_SYSCALL | CPUID_EXT2_APIC |
> + CPUID_EXT2_CX8 | CPUID_EXT2_MCE | CPUID_EXT2_PAE | CPUID_EXT2_MSR |
> + CPUID_EXT2_TSC | CPUID_EXT2_PSE | CPUID_EXT2_DE | CPUID_EXT2_FPU,
> + .ext3_features = CPUID_EXT3_TBM | CPUID_EXT3_FMA4 | CPUID_EXT3_XOP |
> + CPUID_EXT3_3DNOWPREFETCH | CPUID_EXT3_MISALIGNSSE |
> + CPUID_EXT3_SSE4A | CPUID_EXT3_ABM | CPUID_EXT3_SVM |
> + CPUID_EXT3_LAHF_LM,
> + .xlevel = 0x8000001A,
> + .model_id = "AMD Opteron 63xx class CPU",
> + },
> };
>
> #ifdef CONFIG_KVM
> --
> 1.7.11.7
>
>
Reviewed-By: Igor Mammedov <imammedo@redhat.com>
--
Regards,
Igor
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH 3/3] target-i386: add Haswell CPU model
2012-11-14 18:28 ` [Qemu-devel] [PATCH 3/3] target-i386: add Haswell " Eduardo Habkost
@ 2012-11-15 2:14 ` Igor Mammedov
0 siblings, 0 replies; 9+ messages in thread
From: Igor Mammedov @ 2012-11-15 2:14 UTC (permalink / raw)
To: Eduardo Habkost; +Cc: Anthony Liguori, qemu-devel, donald.d.dugger
On Wed, 14 Nov 2012 16:28:54 -0200
Eduardo Habkost <ehabkost@redhat.com> wrote:
> Features added to the model, in relation to SandyBridge:
>
> fma CPUID[1].ECX[12]
> pcid CPUID[1].ECX[17]
> movbe CPUID[1].ECX[22]
> fsgsbase CPUID[EAX=7,ECX=0].EBX[0]
> bmi1 CPUID[EAX=7,ECX=0].EBX[3]
> hle CPUID[EAX=7,ECX=0].EBX[4]
> avx2 CPUID[EAX=7,ECX=0].EBX[5]
> smep CPUID[EAX=7,ECX=0].EBX[7]
> bmi2 CPUID[EAX=7,ECX=0].EBX[8]
> erms CPUID[EAX=7,ECX=0].EBX[9]
> invpcid CPUID[EAX=7,ECX=0].EBX[10]
> rtm CPUID[EAX=7,ECX=0].EBX[11]
>
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
> Cc: donald.d.dugger@intel.com
>
> target-i386/cpu.c | 29 +++++++++++++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index c3aff4f..64c3491 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -647,6 +647,35 @@ static x86_def_t builtin_x86_defs[] = {
> .model_id = "Intel Xeon E312xx (Sandy Bridge)",
> },
> {
> + .name = "Haswell",
> + .level = 0xd,
> + .vendor1 = CPUID_VENDOR_INTEL_1,
> + .vendor2 = CPUID_VENDOR_INTEL_2,
> + .vendor3 = CPUID_VENDOR_INTEL_3,
> + .family = 6,
> + .model = 60,
> + .stepping = 1,
> + .features = CPUID_SSE2 | CPUID_SSE | CPUID_FXSR | CPUID_MMX |
> + CPUID_CLFLUSH | CPUID_PSE36 | CPUID_PAT | CPUID_CMOV | CPUID_MCA |
> + CPUID_PGE | CPUID_MTRR | CPUID_APIC | CPUID_CX8 |
> + CPUID_MCE | CPUID_PAE | CPUID_MSR | CPUID_TSC | CPUID_PSE |
> + CPUID_DE | CPUID_FP87,
> + .ext_features = CPUID_EXT_AVX | CPUID_EXT_XSAVE | CPUID_EXT_AES |
> + CPUID_EXT_POPCNT | CPUID_EXT_X2APIC | CPUID_EXT_SSE42 |
> + CPUID_EXT_SSE41 | CPUID_EXT_CX16 | CPUID_EXT_SSSE3 |
> + CPUID_EXT_PCLMULQDQ | CPUID_EXT_SSE3 |
> + CPUID_EXT_TSC_DEADLINE_TIMER | CPUID_EXT_FMA | CPUID_EXT_MOVBE |
> + CPUID_EXT_PCID,
> + .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_NX | CPUID_EXT2_SYSCALL,
> + .ext3_features = CPUID_EXT3_LAHF_LM,
> + .cpuid_7_0_ebx_features = CPUID_7_0_EBX_FSGSBASE | CPUID_7_0_EBX_BMI1 |
> + CPUID_7_0_EBX_HLE | CPUID_7_0_EBX_AVX2 | CPUID_7_0_EBX_SMEP |
> + CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_ERMS | CPUID_7_0_EBX_INVPCID |
> + CPUID_7_0_EBX_RTM,
> + .xlevel = 0x8000000A,
> + .model_id = "Intel Core Processor (Haswell)",
> + },
> + {
> .name = "Opteron_G1",
> .level = 5,
> .vendor1 = CPUID_VENDOR_AMD_1,
> --
> 1.7.11.7
>
>
Reviewed-By: Igor Mammedov <imammedo@redhat.com>
--
Regards,
Igor
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH 0/3] Opteron_G5 and Haswell CPU models
2012-11-14 20:29 ` [Qemu-devel] [PATCH 0/3] Opteron_G5 and Haswell CPU models Eduardo Habkost
@ 2012-11-15 3:30 ` Andreas Färber
0 siblings, 0 replies; 9+ messages in thread
From: Andreas Färber @ 2012-11-15 3:30 UTC (permalink / raw)
To: Eduardo Habkost; +Cc: Marcelo Tosatti, qemu-devel, Anthony Liguori
Am 14.11.2012 21:29, schrieb Eduardo Habkost:
> Andreas, I just noticed that I didn't CC you in this series, and I don't
> know if this is something that would go through your tree. Should I CC
> you on x86-specific series unrelated to QOM, like this one?
If I get cc'ed or notice and they're trivial or there's review, I will
pick x86 CPU patches up that would fall back to Anthony. If they touch
on KVM though, I expect them to go through (or be ack'ed by) Marcelo.
Andreas
P.S. Let's not over-do the inter-Sob change log, in all fairness to the
author. :)
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2012-11-15 3:30 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-14 18:28 [Qemu-devel] [PATCH 0/3] Opteron_G5 and Haswell CPU models Eduardo Habkost
2012-11-14 18:28 ` [Qemu-devel] [PATCH 1/3] target-i386: cpu: name new CPUID bits Eduardo Habkost
2012-11-15 2:10 ` Igor Mammedov
2012-11-14 18:28 ` [Qemu-devel] [PATCH 2/3] target-i386: cpu: add new Opteron CPU model Eduardo Habkost
2012-11-15 2:11 ` Igor Mammedov
2012-11-14 18:28 ` [Qemu-devel] [PATCH 3/3] target-i386: add Haswell " Eduardo Habkost
2012-11-15 2:14 ` Igor Mammedov
2012-11-14 20:29 ` [Qemu-devel] [PATCH 0/3] Opteron_G5 and Haswell CPU models Eduardo Habkost
2012-11-15 3:30 ` Andreas Färber
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).