All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] target/i386: Add Snowridge-v2 (noMPX) CPU model
@ 2019-10-11 14:53 Xiaoyao Li
  2019-10-11 18:21 ` Eduardo Habkost
  0 siblings, 1 reply; 6+ messages in thread
From: Xiaoyao Li @ 2019-10-11 14:53 UTC (permalink / raw)
  To: Paolo Bonzini, Richard Henderson, Eduardo Habkost,
	Michael S. Tsirkin, Marcel Apfelbaum
  Cc: Xiaoyao Li, qemu-devel

Add new version of Snowridge CPU model that removes MPX feature.

MPX support is being phased out by Intel. GCC has dropped it, Linux kernel
and kvm are also going to do that in the future.

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
---
Changes in v2:
    - Use CPU model versioning mechanism instead of machine-type compat
---
 target/i386/cpu.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index 44f1bbdcac76..27b0a17b46a8 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -2793,6 +2793,19 @@ static X86CPUDefinition builtin_x86_defs[] = {
             CPUID_6_EAX_ARAT,
         .xlevel = 0x80000008,
         .model_id = "Intel Atom Processor (SnowRidge)",
+        .versions = (X86CPUVersionDefinition[]) {
+            { .version = 1 },
+            {
+                .version = 2,
+                .alias = "Snowridge-noMPX",
+                .props = (PropValue[]) {
+                    { "mpx", "off" },
+                    { "model-id", "Intel Atom Processor (Snowridge, no MPX)" },
+                    { /* end of list */ },
+                },
+            },
+            { /* end of list */ },
+        },
     },
     {
         .name = "KnightsMill",
-- 
2.19.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] target/i386: Add Snowridge-v2 (noMPX) CPU model
  2019-10-11 14:53 [PATCH v2] target/i386: Add Snowridge-v2 (noMPX) CPU model Xiaoyao Li
@ 2019-10-11 18:21 ` Eduardo Habkost
  2019-10-12  1:15   ` Xiaoyao Li
  0 siblings, 1 reply; 6+ messages in thread
From: Eduardo Habkost @ 2019-10-11 18:21 UTC (permalink / raw)
  To: Xiaoyao Li
  Cc: Paolo Bonzini, Michael S. Tsirkin, qemu-devel, Richard Henderson

On Fri, Oct 11, 2019 at 10:53:49PM +0800, Xiaoyao Li wrote:
> Add new version of Snowridge CPU model that removes MPX feature.
> 
> MPX support is being phased out by Intel. GCC has dropped it, Linux kernel
> and kvm are also going to do that in the future.
> 
> Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
> ---
> Changes in v2:
>     - Use CPU model versioning mechanism instead of machine-type compat
> ---
>  target/i386/cpu.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> index 44f1bbdcac76..27b0a17b46a8 100644
> --- a/target/i386/cpu.c
> +++ b/target/i386/cpu.c
> @@ -2793,6 +2793,19 @@ static X86CPUDefinition builtin_x86_defs[] = {
>              CPUID_6_EAX_ARAT,
>          .xlevel = 0x80000008,
>          .model_id = "Intel Atom Processor (SnowRidge)",
> +        .versions = (X86CPUVersionDefinition[]) {
> +            { .version = 1 },
> +            {
> +                .version = 2,
> +                .alias = "Snowridge-noMPX",

The intention is to stop creating new funny names for CPU model
variations, now, and stick to -v1, -v2, -v3, etc.

The .alias field is optional, and was added only for
compatibility with the existing -noTSX and -IBRS CPU models.


> +                .props = (PropValue[]) {
> +                    { "mpx", "off" },
> +                    { "model-id", "Intel Atom Processor (Snowridge, no MPX)" },

Do you think it's important to report a different model-id?
I would keep it the same and only add mpx=off.

> +                    { /* end of list */ },
> +                },
> +            },
> +            { /* end of list */ },
> +        },
>      },
>      {
>          .name = "KnightsMill",
> -- 
> 2.19.1
> 

-- 
Eduardo


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] target/i386: Add Snowridge-v2 (noMPX) CPU model
  2019-10-11 18:21 ` Eduardo Habkost
@ 2019-10-12  1:15   ` Xiaoyao Li
  2019-10-12  1:21     ` Eduardo Habkost
  0 siblings, 1 reply; 6+ messages in thread
From: Xiaoyao Li @ 2019-10-12  1:15 UTC (permalink / raw)
  To: Eduardo Habkost
  Cc: Paolo Bonzini, Michael S. Tsirkin, qemu-devel, Richard Henderson

On 10/12/2019 2:21 AM, Eduardo Habkost wrote:
> On Fri, Oct 11, 2019 at 10:53:49PM +0800, Xiaoyao Li wrote:
>> Add new version of Snowridge CPU model that removes MPX feature.
>>
>> MPX support is being phased out by Intel. GCC has dropped it, Linux kernel
>> and kvm are also going to do that in the future.
>>
>> Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
>> ---
>> Changes in v2:
>>      - Use CPU model versioning mechanism instead of machine-type compat
>> ---
>>   target/i386/cpu.c | 13 +++++++++++++
>>   1 file changed, 13 insertions(+)
>>
>> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
>> index 44f1bbdcac76..27b0a17b46a8 100644
>> --- a/target/i386/cpu.c
>> +++ b/target/i386/cpu.c
>> @@ -2793,6 +2793,19 @@ static X86CPUDefinition builtin_x86_defs[] = {
>>               CPUID_6_EAX_ARAT,
>>           .xlevel = 0x80000008,
>>           .model_id = "Intel Atom Processor (SnowRidge)",
>> +        .versions = (X86CPUVersionDefinition[]) {
>> +            { .version = 1 },
>> +            {
>> +                .version = 2,
>> +                .alias = "Snowridge-noMPX",
> 
> The intention is to stop creating new funny names for CPU model
> variations, now, and stick to -v1, -v2, -v3, etc.
> 
> The .alias field is optional, and was added only for
> compatibility with the existing -noTSX and -IBRS CPU models.

Got it.

>> +                .props = (PropValue[]) {
>> +                    { "mpx", "off" },
>> +                    { "model-id", "Intel Atom Processor (Snowridge, no MPX)" },
> 
> Do you think it's important to report a different model-id?
> I would keep it the same and only add mpx=off.

I just want to let user know easily the differences between Snowridge-v1 
and Snowridge-v2. Unfortunately, it seems ugly.

When testing with Cascadelake-Server, it puzzles every time that which 
one should I choose between Cascadelake-Server-v1 and 
Cascadelake-Server-v2. From the output of "-cpu ?", I don't know the 
differences between them. Everytime I have to go to the source code to 
see the difference.

Maybe there is a way to see/report the differences between different 
versions of the same CPU model that I just don't know?

>> +                    { /* end of list */ },
>> +                },
>> +            },
>> +            { /* end of list */ },
>> +        },
>>       },
>>       {
>>           .name = "KnightsMill",
>> -- 
>> 2.19.1
>>
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] target/i386: Add Snowridge-v2 (noMPX) CPU model
  2019-10-12  1:15   ` Xiaoyao Li
@ 2019-10-12  1:21     ` Eduardo Habkost
  2019-10-12  1:31       ` Xiaoyao Li
  0 siblings, 1 reply; 6+ messages in thread
From: Eduardo Habkost @ 2019-10-12  1:21 UTC (permalink / raw)
  To: Xiaoyao Li
  Cc: Paolo Bonzini, Michael S. Tsirkin, qemu-devel, Richard Henderson

On Sat, Oct 12, 2019 at 09:15:56AM +0800, Xiaoyao Li wrote:
> On 10/12/2019 2:21 AM, Eduardo Habkost wrote:
> > On Fri, Oct 11, 2019 at 10:53:49PM +0800, Xiaoyao Li wrote:
> > > Add new version of Snowridge CPU model that removes MPX feature.
> > > 
> > > MPX support is being phased out by Intel. GCC has dropped it, Linux kernel
> > > and kvm are also going to do that in the future.
> > > 
> > > Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
> > > ---
> > > Changes in v2:
> > >      - Use CPU model versioning mechanism instead of machine-type compat
> > > ---
> > >   target/i386/cpu.c | 13 +++++++++++++
> > >   1 file changed, 13 insertions(+)
> > > 
> > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> > > index 44f1bbdcac76..27b0a17b46a8 100644
> > > --- a/target/i386/cpu.c
> > > +++ b/target/i386/cpu.c
> > > @@ -2793,6 +2793,19 @@ static X86CPUDefinition builtin_x86_defs[] = {
> > >               CPUID_6_EAX_ARAT,
> > >           .xlevel = 0x80000008,
> > >           .model_id = "Intel Atom Processor (SnowRidge)",
> > > +        .versions = (X86CPUVersionDefinition[]) {
> > > +            { .version = 1 },
> > > +            {
> > > +                .version = 2,
> > > +                .alias = "Snowridge-noMPX",
> > 
> > The intention is to stop creating new funny names for CPU model
> > variations, now, and stick to -v1, -v2, -v3, etc.
> > 
> > The .alias field is optional, and was added only for
> > compatibility with the existing -noTSX and -IBRS CPU models.
> 
> Got it.
> 
> > > +                .props = (PropValue[]) {
> > > +                    { "mpx", "off" },
> > > +                    { "model-id", "Intel Atom Processor (Snowridge, no MPX)" },
> > 
> > Do you think it's important to report a different model-id?
> > I would keep it the same and only add mpx=off.
> 
> I just want to let user know easily the differences between Snowridge-v1 and
> Snowridge-v2. Unfortunately, it seems ugly.
> 
> When testing with Cascadelake-Server, it puzzles every time that which one
> should I choose between Cascadelake-Server-v1 and Cascadelake-Server-v2.
> From the output of "-cpu ?", I don't know the differences between them.
> Everytime I have to go to the source code to see the difference.
> 
> Maybe there is a way to see/report the differences between different
> versions of the same CPU model that I just don't know?

Good point.  I forgot that model-id is also the model description
in "-cpu ?".

Well, it doesn't hurt to have a different model-id in v2 that's
more informative.  Feel free to keep the model-id line in v3.

Thanks!

-- 
Eduardo


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] target/i386: Add Snowridge-v2 (noMPX) CPU model
  2019-10-12  1:21     ` Eduardo Habkost
@ 2019-10-12  1:31       ` Xiaoyao Li
  2019-10-12  2:05         ` Eduardo Habkost
  0 siblings, 1 reply; 6+ messages in thread
From: Xiaoyao Li @ 2019-10-12  1:31 UTC (permalink / raw)
  To: Eduardo Habkost
  Cc: Paolo Bonzini, Michael S. Tsirkin, qemu-devel, Richard Henderson

On 10/12/2019 9:21 AM, Eduardo Habkost wrote:
> On Sat, Oct 12, 2019 at 09:15:56AM +0800, Xiaoyao Li wrote:
>> On 10/12/2019 2:21 AM, Eduardo Habkost wrote:
>>> On Fri, Oct 11, 2019 at 10:53:49PM +0800, Xiaoyao Li wrote:
>>>> Add new version of Snowridge CPU model that removes MPX feature.
>>>>
>>>> MPX support is being phased out by Intel. GCC has dropped it, Linux kernel
>>>> and kvm are also going to do that in the future.
>>>>
>>>> Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
>>>> ---
>>>> Changes in v2:
>>>>       - Use CPU model versioning mechanism instead of machine-type compat
>>>> ---
>>>>    target/i386/cpu.c | 13 +++++++++++++
>>>>    1 file changed, 13 insertions(+)
>>>>
>>>> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
>>>> index 44f1bbdcac76..27b0a17b46a8 100644
>>>> --- a/target/i386/cpu.c
>>>> +++ b/target/i386/cpu.c
>>>> @@ -2793,6 +2793,19 @@ static X86CPUDefinition builtin_x86_defs[] = {
>>>>                CPUID_6_EAX_ARAT,
>>>>            .xlevel = 0x80000008,
>>>>            .model_id = "Intel Atom Processor (SnowRidge)",
>>>> +        .versions = (X86CPUVersionDefinition[]) {
>>>> +            { .version = 1 },
>>>> +            {
>>>> +                .version = 2,
>>>> +                .alias = "Snowridge-noMPX",
>>>
>>> The intention is to stop creating new funny names for CPU model
>>> variations, now, and stick to -v1, -v2, -v3, etc.
>>>
>>> The .alias field is optional, and was added only for
>>> compatibility with the existing -noTSX and -IBRS CPU models.
>>
>> Got it.
>>
>>>> +                .props = (PropValue[]) {
>>>> +                    { "mpx", "off" },
>>>> +                    { "model-id", "Intel Atom Processor (Snowridge, no MPX)" },
>>>
>>> Do you think it's important to report a different model-id?
>>> I would keep it the same and only add mpx=off.
>>
>> I just want to let user know easily the differences between Snowridge-v1 and
>> Snowridge-v2. Unfortunately, it seems ugly.
>>
>> When testing with Cascadelake-Server, it puzzles every time that which one
>> should I choose between Cascadelake-Server-v1 and Cascadelake-Server-v2.
>>  From the output of "-cpu ?", I don't know the differences between them.
>> Everytime I have to go to the source code to see the difference.
>>
>> Maybe there is a way to see/report the differences between different
>> versions of the same CPU model that I just don't know?
> 
> Good point.  I forgot that model-id is also the model description
> in "-cpu ?".
> 
> Well, it doesn't hurt to have a different model-id in v2 that's
> more informative.  Feel free to keep the model-id line in v3.

OK. I will send out the v3 patch keeping the model-id while removing the 
alias.

BTW, do you have better idea to tell the differences among versions of 
the same CPU model?


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] target/i386: Add Snowridge-v2 (noMPX) CPU model
  2019-10-12  1:31       ` Xiaoyao Li
@ 2019-10-12  2:05         ` Eduardo Habkost
  0 siblings, 0 replies; 6+ messages in thread
From: Eduardo Habkost @ 2019-10-12  2:05 UTC (permalink / raw)
  To: Xiaoyao Li
  Cc: Paolo Bonzini, Michael S. Tsirkin, qemu-devel, Richard Henderson

On Sat, Oct 12, 2019 at 09:31:25AM +0800, Xiaoyao Li wrote:
> On 10/12/2019 9:21 AM, Eduardo Habkost wrote:
> > On Sat, Oct 12, 2019 at 09:15:56AM +0800, Xiaoyao Li wrote:
> > > On 10/12/2019 2:21 AM, Eduardo Habkost wrote:
> > > > On Fri, Oct 11, 2019 at 10:53:49PM +0800, Xiaoyao Li wrote:
> > > > > Add new version of Snowridge CPU model that removes MPX feature.
> > > > > 
> > > > > MPX support is being phased out by Intel. GCC has dropped it, Linux kernel
> > > > > and kvm are also going to do that in the future.
> > > > > 
> > > > > Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
> > > > > ---
> > > > > Changes in v2:
> > > > >       - Use CPU model versioning mechanism instead of machine-type compat
> > > > > ---
> > > > >    target/i386/cpu.c | 13 +++++++++++++
> > > > >    1 file changed, 13 insertions(+)
> > > > > 
> > > > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> > > > > index 44f1bbdcac76..27b0a17b46a8 100644
> > > > > --- a/target/i386/cpu.c
> > > > > +++ b/target/i386/cpu.c
> > > > > @@ -2793,6 +2793,19 @@ static X86CPUDefinition builtin_x86_defs[] = {
> > > > >                CPUID_6_EAX_ARAT,
> > > > >            .xlevel = 0x80000008,
> > > > >            .model_id = "Intel Atom Processor (SnowRidge)",
> > > > > +        .versions = (X86CPUVersionDefinition[]) {
> > > > > +            { .version = 1 },
> > > > > +            {
> > > > > +                .version = 2,
> > > > > +                .alias = "Snowridge-noMPX",
> > > > 
> > > > The intention is to stop creating new funny names for CPU model
> > > > variations, now, and stick to -v1, -v2, -v3, etc.
> > > > 
> > > > The .alias field is optional, and was added only for
> > > > compatibility with the existing -noTSX and -IBRS CPU models.
> > > 
> > > Got it.
> > > 
> > > > > +                .props = (PropValue[]) {
> > > > > +                    { "mpx", "off" },
> > > > > +                    { "model-id", "Intel Atom Processor (Snowridge, no MPX)" },
> > > > 
> > > > Do you think it's important to report a different model-id?
> > > > I would keep it the same and only add mpx=off.
> > > 
> > > I just want to let user know easily the differences between Snowridge-v1 and
> > > Snowridge-v2. Unfortunately, it seems ugly.
> > > 
> > > When testing with Cascadelake-Server, it puzzles every time that which one
> > > should I choose between Cascadelake-Server-v1 and Cascadelake-Server-v2.
> > >  From the output of "-cpu ?", I don't know the differences between them.
> > > Everytime I have to go to the source code to see the difference.
> > > 
> > > Maybe there is a way to see/report the differences between different
> > > versions of the same CPU model that I just don't know?
> > 
> > Good point.  I forgot that model-id is also the model description
> > in "-cpu ?".
> > 
> > Well, it doesn't hurt to have a different model-id in v2 that's
> > more informative.  Feel free to keep the model-id line in v3.
> 
> OK. I will send out the v3 patch keeping the model-id while removing the
> alias.
> 
> BTW, do you have better idea to tell the differences among versions of the
> same CPU model?

We could add a new field for a human-readable description of the
CPU model version, and print that field on "-cpu help" if set.

We could also try to generate a description automatically (e.g.
automatically describe SnowRidge-v2 as "SnowRidge-v1 plus mpx"
based on .props).  I'm not sure if it would be worth the effort,
though.

-- 
Eduardo


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-10-12  2:06 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-11 14:53 [PATCH v2] target/i386: Add Snowridge-v2 (noMPX) CPU model Xiaoyao Li
2019-10-11 18:21 ` Eduardo Habkost
2019-10-12  1:15   ` Xiaoyao Li
2019-10-12  1:21     ` Eduardo Habkost
2019-10-12  1:31       ` Xiaoyao Li
2019-10-12  2:05         ` Eduardo Habkost

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.