Message ID | 1403035900-31820-1-git-send-email-ehabkost@redhat.com |
---|---|
State | New |
Headers | show |
"target" Am 17.06.2014 22:11, schrieb Eduardo Habkost: > This adds a new CPU model named "Broadwell". It has all the features > from Haswell, plus PREFETCHW, RDSEED, ADX, SMAP. > > PREFETCHW was already supported as "3dnowprefetch". > > RDSEED, ADX was added on Linux v3.15-rc1. > > SMAP was added on Linux v3.15-rc2. > > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> > Cc: Wang, Yong Y <yong.y.wang@intel.com> > Cc: Paolo Bonzini <pbonzini@redhat.com> > Cc: Dugger, Donald D <donald.d.dugger@intel.com> > --- > target-i386/cpu.c | 34 ++++++++++++++++++++++++++++++++++ > 1 file changed, 34 insertions(+) > > diff --git a/target-i386/cpu.c b/target-i386/cpu.c > index 8983457..027a9b5 100644 > --- a/target-i386/cpu.c > +++ b/target-i386/cpu.c > @@ -971,6 +971,40 @@ static X86CPUDefinition builtin_x86_defs[] = { > .model_id = "Intel Core Processor (Haswell)", > }, > { > + .name = "Broadwell", > + .level = 0xd, > + .vendor = CPUID_VENDOR_INTEL, > + .family = 6, > + .model = 61, > + .stepping = 2, > + .features[FEAT_1_EDX] = > + 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, The indentation looks inconsistent (1 off), although I don't see a tab character in the mix... > + .features[FEAT_1_ECX] = > + 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, > + .features[FEAT_8000_0001_EDX] = > + CPUID_EXT2_LM | CPUID_EXT2_RDTSCP | CPUID_EXT2_NX | > + CPUID_EXT2_SYSCALL, > + .features[FEAT_8000_0001_ECX] = > + CPUID_EXT3_LAHF_LM | CPUID_EXT3_3DNOWPREFETCH, > + .features[FEAT_7_0_EBX] = > + 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 | CPUID_7_0_EBX_RDSEED | CPUID_7_0_EBX_ADX | > + CPUID_7_0_EBX_SMAP, > + .xlevel = 0x8000000A, > + .model_id = "Intel Core Processor (Broadwell)", > + }, > + { > .name = "Opteron_G1", > .level = 5, > .vendor = CPUID_VENDOR_AMD, Apart from that, looks sane, so if someone can confirm the Broadwell-specific values I'll be happy to fix the style and queue it for 2.1. Regards, Andreas
On Tue, Jun 17, 2014 at 10:34:16PM +0200, Andreas Färber wrote:
> "target"
Yeah, I read the commit message 5 times before submitting, but I missed
that part. Sorry. :)
I assume this can be fixed manually before applying the patch. In case I
need to submit a new version for other reasons, the typo will be fixed.
On Tue, Jun 17, 2014 at 10:34:16PM +0200, Andreas Färber wrote: [...] > > + .features[FEAT_1_EDX] = > > + 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, > > The indentation looks inconsistent (1 off), although I don't see a tab > character in the mix... This was copied & pasted from the Haswell CPU model. I hadn't noticed it. Now I see that all CPU models starting from Conroe have the same indentation inconsistency. Worth fixing on all CPU models before sending a pull request, I guess. > > + .features[FEAT_1_ECX] = > > + 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, > > + .features[FEAT_8000_0001_EDX] = > > + CPUID_EXT2_LM | CPUID_EXT2_RDTSCP | CPUID_EXT2_NX | > > + CPUID_EXT2_SYSCALL, > > + .features[FEAT_8000_0001_ECX] = > > + CPUID_EXT3_LAHF_LM | CPUID_EXT3_3DNOWPREFETCH, > > + .features[FEAT_7_0_EBX] = > > + 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 | CPUID_7_0_EBX_RDSEED | CPUID_7_0_EBX_ADX | > > + CPUID_7_0_EBX_SMAP, > > + .xlevel = 0x8000000A, > > + .model_id = "Intel Core Processor (Broadwell)", > > + }, > > + { > > .name = "Opteron_G1", > > .level = 5, > > .vendor = CPUID_VENDOR_AMD, > > Apart from that, looks sane, so if someone can confirm the > Broadwell-specific values I'll be happy to fix the style and queue it > for 2.1. I hope the Intel folks that are on CC can give a Reviewed-by and/or Tested-by tag. Thanks!
Il 17/06/2014 22:34, Andreas Färber ha scritto: > Apart from that, looks sane, so if someone can confirm the > Broadwell-specific values I'll be happy to fix the style and queue it > for 2.1. The only Broadwell machine I can see the data for (but I cannot access it) is a laptop version (ULT) and it has family/model/stepping equal to 6/61/3. Eduardo used 6/61/2, that's okay too. The CPUID features look sane, and match what Intel said about Broadwell on the KVM mailing lists and also in private email. Paolo
diff --git a/target-i386/cpu.c b/target-i386/cpu.c index 8983457..027a9b5 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -971,6 +971,40 @@ static X86CPUDefinition builtin_x86_defs[] = { .model_id = "Intel Core Processor (Haswell)", }, { + .name = "Broadwell", + .level = 0xd, + .vendor = CPUID_VENDOR_INTEL, + .family = 6, + .model = 61, + .stepping = 2, + .features[FEAT_1_EDX] = + 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, + .features[FEAT_1_ECX] = + 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, + .features[FEAT_8000_0001_EDX] = + CPUID_EXT2_LM | CPUID_EXT2_RDTSCP | CPUID_EXT2_NX | + CPUID_EXT2_SYSCALL, + .features[FEAT_8000_0001_ECX] = + CPUID_EXT3_LAHF_LM | CPUID_EXT3_3DNOWPREFETCH, + .features[FEAT_7_0_EBX] = + 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 | CPUID_7_0_EBX_RDSEED | CPUID_7_0_EBX_ADX | + CPUID_7_0_EBX_SMAP, + .xlevel = 0x8000000A, + .model_id = "Intel Core Processor (Broadwell)", + }, + { .name = "Opteron_G1", .level = 5, .vendor = CPUID_VENDOR_AMD,
This adds a new CPU model named "Broadwell". It has all the features from Haswell, plus PREFETCHW, RDSEED, ADX, SMAP. PREFETCHW was already supported as "3dnowprefetch". RDSEED, ADX was added on Linux v3.15-rc1. SMAP was added on Linux v3.15-rc2. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Cc: Wang, Yong Y <yong.y.wang@intel.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Dugger, Donald D <donald.d.dugger@intel.com> --- target-i386/cpu.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+)