Patchwork Add default VMX flags to Intel CPU

login
register
mail settings
Submitter 李春奇
Date May 4, 2013, 8:33 a.m.
Message ID <CABpY8MK+EQgqcG8KcWMr4dhTB1sYH32+kJns24LXa=RX160D2A@mail.gmail.com>
Download mbox | patch
Permalink /patch/241436/
State New
Headers show

Comments

李春奇 - May 4, 2013, 8:33 a.m.
Add ext_features of CPUID_EXT_VMX to the following CPUs as default
flag (now only core(2)duo with VMX flag by default):

kvm64, kvm32, Penryn, Nehalem, Westmere, SandyBridge, Haswell.

Other CPUs of AMD and lower versions of Intel CPU without VMX support
don't add this feature by default.

Signed-off by: Arthur Chunqi Li <yzt356@gmail.com>
---
 target-i386/cpu.c |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

--
1.7.9.5
Andreas Färber - May 4, 2013, 8:39 a.m.
Am 04.05.2013 10:33, schrieb 李春奇 <Arthur Chunqi Li>:
> Add ext_features of CPUID_EXT_VMX to the following CPUs as default
> flag (now only core(2)duo with VMX flag by default):
> 
> kvm64, kvm32, Penryn, Nehalem, Westmere, SandyBridge, Haswell.
> 
> Other CPUs of AMD and lower versions of Intel CPU without VMX support
> don't add this feature by default.
> 
> Signed-off by: Arthur Chunqi Li <yzt356@gmail.com>
> ---
>  target-i386/cpu.c |   14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index e2302d8..7b659f7 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -490,7 +490,7 @@ static x86_def_t builtin_x86_defs[] = {
>              CPUID_MTRR | CPUID_CLFLUSH | CPUID_MCA |
>              CPUID_PSE36,
>          /* Missing: CPUID_EXT_POPCNT, CPUID_EXT_MONITOR */
> -        .ext_features = CPUID_EXT_SSE3 | CPUID_EXT_CX16,
> +        .ext_features = CPUID_EXT_SSE3 | CPUID_EXT_CX16 | CPUID_EXT_VMX,
>          /* Missing: CPUID_EXT2_PDPE1GB, CPUID_EXT2_RDTSCP */
>          .ext2_features = (PPRO_FEATURES & CPUID_EXT2_AMD_ALIASES) |
>              CPUID_EXT2_LM | CPUID_EXT2_SYSCALL | CPUID_EXT2_NX,

I believe adding this flag without compatibility code is a no-go, see my
previous email.

Also you again didn't CC me as maintainer - either check ./MAINTAINERS
or use scripts/get_maintainer.pl --nogit-fallback with git-send-email.

Regards,
Andreas

> @@ -522,7 +522,7 @@ static x86_def_t builtin_x86_defs[] = {
>          .stepping = 1,
>          .features = PPRO_FEATURES |
>              CPUID_MTRR | CPUID_CLFLUSH | CPUID_MCA | CPUID_PSE36,
> -        .ext_features = CPUID_EXT_SSE3,
> +        .ext_features = CPUID_EXT_SSE3 | CPUID_EXT_VMX,
>          .ext2_features = PPRO_FEATURES & CPUID_EXT2_AMD_ALIASES,
>          .ext3_features = 0,
>          .xlevel = 0x80000008,
> @@ -648,7 +648,7 @@ static x86_def_t builtin_x86_defs[] = {
>               CPUID_MCE | CPUID_PAE | CPUID_MSR | CPUID_TSC | CPUID_PSE |
>               CPUID_DE | CPUID_FP87,
>          .ext_features = CPUID_EXT_SSE41 | CPUID_EXT_CX16 | CPUID_EXT_SSSE3 |
> -             CPUID_EXT_SSE3,
> +             CPUID_EXT_SSE3 | CPUID_EXT_VMX,
>          .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_NX | CPUID_EXT2_SYSCALL,
>          .ext3_features = CPUID_EXT3_LAHF_LM,
>          .xlevel = 0x8000000A,
> @@ -667,7 +667,7 @@ static x86_def_t builtin_x86_defs[] = {
>               CPUID_MCE | CPUID_PAE | CPUID_MSR | CPUID_TSC | CPUID_PSE |
>               CPUID_DE | CPUID_FP87,
>          .ext_features = CPUID_EXT_POPCNT | CPUID_EXT_SSE42 | CPUID_EXT_SSE41 |
> -             CPUID_EXT_CX16 | CPUID_EXT_SSSE3 | CPUID_EXT_SSE3,
> +             CPUID_EXT_CX16 | CPUID_EXT_SSSE3 | CPUID_EXT_SSE3 | CPUID_EXT_VMX,
>          .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_SYSCALL | CPUID_EXT2_NX,
>          .ext3_features = CPUID_EXT3_LAHF_LM,
>          .xlevel = 0x8000000A,
> @@ -687,7 +687,7 @@ static x86_def_t builtin_x86_defs[] = {
>               CPUID_DE | CPUID_FP87,
>          .ext_features = CPUID_EXT_AES | CPUID_EXT_POPCNT | CPUID_EXT_SSE42 |
>               CPUID_EXT_SSE41 | CPUID_EXT_CX16 | CPUID_EXT_SSSE3 |
> -             CPUID_EXT_PCLMULQDQ | CPUID_EXT_SSE3,
> +             CPUID_EXT_PCLMULQDQ | CPUID_EXT_SSE3 | CPUID_EXT_VMX,
>          .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_SYSCALL | CPUID_EXT2_NX,
>          .ext3_features = CPUID_EXT3_LAHF_LM,
>          .xlevel = 0x8000000A,
> @@ -709,7 +709,7 @@ static x86_def_t builtin_x86_defs[] = {
>               CPUID_EXT_TSC_DEADLINE_TIMER | 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_SSE3 | CPUID_EXT_VMX,
>          .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_RDTSCP | CPUID_EXT2_NX |
>               CPUID_EXT2_SYSCALL,
>          .ext3_features = CPUID_EXT3_LAHF_LM,
> @@ -733,7 +733,7 @@ static x86_def_t builtin_x86_defs[] = {
>               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,
> +             CPUID_EXT_PCID | CPUID_EXT_VMX,
>          .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_RDTSCP | CPUID_EXT2_NX |
>               CPUID_EXT2_SYSCALL,
>          .ext3_features = CPUID_EXT3_LAHF_LM,
> --
> 1.7.9.5
>
李春奇 - May 4, 2013, 8:42 a.m.
I send this mail before receiving your previous mail. I will check all
this things.

Thanks,
Arthur

On Sat, May 4, 2013 at 4:39 PM, Andreas Färber <afaerber@suse.de> wrote:
> Am 04.05.2013 10:33, schrieb 李春奇 <Arthur Chunqi Li>:
>> Add ext_features of CPUID_EXT_VMX to the following CPUs as default
>> flag (now only core(2)duo with VMX flag by default):
>>
>> kvm64, kvm32, Penryn, Nehalem, Westmere, SandyBridge, Haswell.
>>
>> Other CPUs of AMD and lower versions of Intel CPU without VMX support
>> don't add this feature by default.
>>
>> Signed-off by: Arthur Chunqi Li <yzt356@gmail.com>
>> ---
>>  target-i386/cpu.c |   14 +++++++-------
>>  1 file changed, 7 insertions(+), 7 deletions(-)
>>
>> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
>> index e2302d8..7b659f7 100644
>> --- a/target-i386/cpu.c
>> +++ b/target-i386/cpu.c
>> @@ -490,7 +490,7 @@ static x86_def_t builtin_x86_defs[] = {
>>              CPUID_MTRR | CPUID_CLFLUSH | CPUID_MCA |
>>              CPUID_PSE36,
>>          /* Missing: CPUID_EXT_POPCNT, CPUID_EXT_MONITOR */
>> -        .ext_features = CPUID_EXT_SSE3 | CPUID_EXT_CX16,
>> +        .ext_features = CPUID_EXT_SSE3 | CPUID_EXT_CX16 | CPUID_EXT_VMX,
>>          /* Missing: CPUID_EXT2_PDPE1GB, CPUID_EXT2_RDTSCP */
>>          .ext2_features = (PPRO_FEATURES & CPUID_EXT2_AMD_ALIASES) |
>>              CPUID_EXT2_LM | CPUID_EXT2_SYSCALL | CPUID_EXT2_NX,
>
> I believe adding this flag without compatibility code is a no-go, see my
> previous email.
>
> Also you again didn't CC me as maintainer - either check ./MAINTAINERS
> or use scripts/get_maintainer.pl --nogit-fallback with git-send-email.
>
> Regards,
> Andreas
>
>> @@ -522,7 +522,7 @@ static x86_def_t builtin_x86_defs[] = {
>>          .stepping = 1,
>>          .features = PPRO_FEATURES |
>>              CPUID_MTRR | CPUID_CLFLUSH | CPUID_MCA | CPUID_PSE36,
>> -        .ext_features = CPUID_EXT_SSE3,
>> +        .ext_features = CPUID_EXT_SSE3 | CPUID_EXT_VMX,
>>          .ext2_features = PPRO_FEATURES & CPUID_EXT2_AMD_ALIASES,
>>          .ext3_features = 0,
>>          .xlevel = 0x80000008,
>> @@ -648,7 +648,7 @@ static x86_def_t builtin_x86_defs[] = {
>>               CPUID_MCE | CPUID_PAE | CPUID_MSR | CPUID_TSC | CPUID_PSE |
>>               CPUID_DE | CPUID_FP87,
>>          .ext_features = CPUID_EXT_SSE41 | CPUID_EXT_CX16 | CPUID_EXT_SSSE3 |
>> -             CPUID_EXT_SSE3,
>> +             CPUID_EXT_SSE3 | CPUID_EXT_VMX,
>>          .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_NX | CPUID_EXT2_SYSCALL,
>>          .ext3_features = CPUID_EXT3_LAHF_LM,
>>          .xlevel = 0x8000000A,
>> @@ -667,7 +667,7 @@ static x86_def_t builtin_x86_defs[] = {
>>               CPUID_MCE | CPUID_PAE | CPUID_MSR | CPUID_TSC | CPUID_PSE |
>>               CPUID_DE | CPUID_FP87,
>>          .ext_features = CPUID_EXT_POPCNT | CPUID_EXT_SSE42 | CPUID_EXT_SSE41 |
>> -             CPUID_EXT_CX16 | CPUID_EXT_SSSE3 | CPUID_EXT_SSE3,
>> +             CPUID_EXT_CX16 | CPUID_EXT_SSSE3 | CPUID_EXT_SSE3 | CPUID_EXT_VMX,
>>          .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_SYSCALL | CPUID_EXT2_NX,
>>          .ext3_features = CPUID_EXT3_LAHF_LM,
>>          .xlevel = 0x8000000A,
>> @@ -687,7 +687,7 @@ static x86_def_t builtin_x86_defs[] = {
>>               CPUID_DE | CPUID_FP87,
>>          .ext_features = CPUID_EXT_AES | CPUID_EXT_POPCNT | CPUID_EXT_SSE42 |
>>               CPUID_EXT_SSE41 | CPUID_EXT_CX16 | CPUID_EXT_SSSE3 |
>> -             CPUID_EXT_PCLMULQDQ | CPUID_EXT_SSE3,
>> +             CPUID_EXT_PCLMULQDQ | CPUID_EXT_SSE3 | CPUID_EXT_VMX,
>>          .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_SYSCALL | CPUID_EXT2_NX,
>>          .ext3_features = CPUID_EXT3_LAHF_LM,
>>          .xlevel = 0x8000000A,
>> @@ -709,7 +709,7 @@ static x86_def_t builtin_x86_defs[] = {
>>               CPUID_EXT_TSC_DEADLINE_TIMER | 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_SSE3 | CPUID_EXT_VMX,
>>          .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_RDTSCP | CPUID_EXT2_NX |
>>               CPUID_EXT2_SYSCALL,
>>          .ext3_features = CPUID_EXT3_LAHF_LM,
>> @@ -733,7 +733,7 @@ static x86_def_t builtin_x86_defs[] = {
>>               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,
>> +             CPUID_EXT_PCID | CPUID_EXT_VMX,
>>          .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_RDTSCP | CPUID_EXT2_NX |
>>               CPUID_EXT2_SYSCALL,
>>          .ext3_features = CPUID_EXT3_LAHF_LM,
>> --
>> 1.7.9.5
>>
>
>
> --
> SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

Patch

diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index e2302d8..7b659f7 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -490,7 +490,7 @@  static x86_def_t builtin_x86_defs[] = {
             CPUID_MTRR | CPUID_CLFLUSH | CPUID_MCA |
             CPUID_PSE36,
         /* Missing: CPUID_EXT_POPCNT, CPUID_EXT_MONITOR */
-        .ext_features = CPUID_EXT_SSE3 | CPUID_EXT_CX16,
+        .ext_features = CPUID_EXT_SSE3 | CPUID_EXT_CX16 | CPUID_EXT_VMX,
         /* Missing: CPUID_EXT2_PDPE1GB, CPUID_EXT2_RDTSCP */
         .ext2_features = (PPRO_FEATURES & CPUID_EXT2_AMD_ALIASES) |
             CPUID_EXT2_LM | CPUID_EXT2_SYSCALL | CPUID_EXT2_NX,
@@ -522,7 +522,7 @@  static x86_def_t builtin_x86_defs[] = {
         .stepping = 1,
         .features = PPRO_FEATURES |
             CPUID_MTRR | CPUID_CLFLUSH | CPUID_MCA | CPUID_PSE36,
-        .ext_features = CPUID_EXT_SSE3,
+        .ext_features = CPUID_EXT_SSE3 | CPUID_EXT_VMX,
         .ext2_features = PPRO_FEATURES & CPUID_EXT2_AMD_ALIASES,
         .ext3_features = 0,
         .xlevel = 0x80000008,
@@ -648,7 +648,7 @@  static x86_def_t builtin_x86_defs[] = {
              CPUID_MCE | CPUID_PAE | CPUID_MSR | CPUID_TSC | CPUID_PSE |
              CPUID_DE | CPUID_FP87,
         .ext_features = CPUID_EXT_SSE41 | CPUID_EXT_CX16 | CPUID_EXT_SSSE3 |
-             CPUID_EXT_SSE3,
+             CPUID_EXT_SSE3 | CPUID_EXT_VMX,
         .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_NX | CPUID_EXT2_SYSCALL,
         .ext3_features = CPUID_EXT3_LAHF_LM,
         .xlevel = 0x8000000A,
@@ -667,7 +667,7 @@  static x86_def_t builtin_x86_defs[] = {
              CPUID_MCE | CPUID_PAE | CPUID_MSR | CPUID_TSC | CPUID_PSE |
              CPUID_DE | CPUID_FP87,
         .ext_features = CPUID_EXT_POPCNT | CPUID_EXT_SSE42 | CPUID_EXT_SSE41 |
-             CPUID_EXT_CX16 | CPUID_EXT_SSSE3 | CPUID_EXT_SSE3,
+             CPUID_EXT_CX16 | CPUID_EXT_SSSE3 | CPUID_EXT_SSE3 | CPUID_EXT_VMX,
         .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_SYSCALL | CPUID_EXT2_NX,
         .ext3_features = CPUID_EXT3_LAHF_LM,
         .xlevel = 0x8000000A,
@@ -687,7 +687,7 @@  static x86_def_t builtin_x86_defs[] = {
              CPUID_DE | CPUID_FP87,
         .ext_features = CPUID_EXT_AES | CPUID_EXT_POPCNT | CPUID_EXT_SSE42 |
              CPUID_EXT_SSE41 | CPUID_EXT_CX16 | CPUID_EXT_SSSE3 |
-             CPUID_EXT_PCLMULQDQ | CPUID_EXT_SSE3,
+             CPUID_EXT_PCLMULQDQ | CPUID_EXT_SSE3 | CPUID_EXT_VMX,
         .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_SYSCALL | CPUID_EXT2_NX,
         .ext3_features = CPUID_EXT3_LAHF_LM,
         .xlevel = 0x8000000A,
@@ -709,7 +709,7 @@  static x86_def_t builtin_x86_defs[] = {
              CPUID_EXT_TSC_DEADLINE_TIMER | 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_SSE3 | CPUID_EXT_VMX,
         .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_RDTSCP | CPUID_EXT2_NX |
              CPUID_EXT2_SYSCALL,
         .ext3_features = CPUID_EXT3_LAHF_LM,
@@ -733,7 +733,7 @@  static x86_def_t builtin_x86_defs[] = {
              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,
+             CPUID_EXT_PCID | CPUID_EXT_VMX,
         .ext2_features = CPUID_EXT2_LM | CPUID_EXT2_RDTSCP | CPUID_EXT2_NX |
              CPUID_EXT2_SYSCALL,
         .ext3_features = CPUID_EXT3_LAHF_LM,