Re: [PATCH v3 4/4] target/i386: Add notes for versioned CPU models
On 2/29/2020 5:52 AM, Eduardo Habkost wrote: On Wed, Feb 12, 2020 at 04:13:28PM +0800, Tao Xu wrote: Add which features are added or removed in this version. Remove the changed model-id in versioned CPU models, to keep the model name unchanged at /proc/cpuinfo inside the VM. Signed-off-by: Tao Xu --- Changes in v2: - correct the note of Cascadelake v3 (Xiaoyao) --- target/i386/cpu.c | 54 ++- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 81a039beb6..739ef4ce91 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -2278,10 +2278,9 @@ static X86CPUDefinition builtin_x86_defs[] = { { .version = 2, .alias = "Nehalem-IBRS", +.note = "IBRS", .props = (PropValue[]) { { "spec-ctrl", "on" }, -{ "model-id", - "Intel Core i7 9xx (Nehalem Core i7, IBRS update)" }, { /* end of list */ } Changing model-id is guest-visible, so we can't do this. The same applies to the other models where model-id is being removed. I suggest using the .note property only on the CPU model versions that don't have custom model-id set yet, or when existing information on model-id is incomplete. For future CPU model versions, we can start using only .note and stop changing model-id. Got it,thanks!
Re: [PATCH v3 4/4] target/i386: Add notes for versioned CPU models
On Wed, Feb 12, 2020 at 04:13:28PM +0800, Tao Xu wrote: > Add which features are added or removed in this version. Remove the > changed model-id in versioned CPU models, to keep the model name > unchanged at /proc/cpuinfo inside the VM. > > Signed-off-by: Tao Xu > --- > > Changes in v2: > - correct the note of Cascadelake v3 (Xiaoyao) > --- > target/i386/cpu.c | 54 ++- > 1 file changed, 25 insertions(+), 29 deletions(-) > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c > index 81a039beb6..739ef4ce91 100644 > --- a/target/i386/cpu.c > +++ b/target/i386/cpu.c > @@ -2278,10 +2278,9 @@ static X86CPUDefinition builtin_x86_defs[] = { > { > .version = 2, > .alias = "Nehalem-IBRS", > +.note = "IBRS", > .props = (PropValue[]) { > { "spec-ctrl", "on" }, > -{ "model-id", > - "Intel Core i7 9xx (Nehalem Core i7, IBRS update)" }, > { /* end of list */ } Changing model-id is guest-visible, so we can't do this. The same applies to the other models where model-id is being removed. I suggest using the .note property only on the CPU model versions that don't have custom model-id set yet, or when existing information on model-id is incomplete. For future CPU model versions, we can start using only .note and stop changing model-id. -- Eduardo
Re: [PATCH v3 4/4] target/i386: Add notes for versioned CPU models
On 2/12/2020 5:00 PM, Igor Mammedov wrote: On Wed, 12 Feb 2020 16:13:28 +0800 Tao Xu wrote: Add which features are added or removed in this version. Remove the changed model-id in versioned CPU models, to keep the model name unchanged at /proc/cpuinfo inside the VM. Signed-off-by: Tao Xu --- Changes in v2: - correct the note of Cascadelake v3 (Xiaoyao) --- target/i386/cpu.c | 54 ++- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 81a039beb6..739ef4ce91 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c [...] @@ -3142,6 +3130,7 @@ static X86CPUDefinition builtin_x86_defs[] = { .versions = (X86CPUVersionDefinition[]) { { .version = 1 }, { .version = 2, + .note = "ARCH_CAPABILITIES", what's ARCH_CAPABILITIES? These are some features exposed by MSR_IA32_ARCH_CAPABILITIES. For Cascadelake, these are "rdctl-no" "ibrs-all" "skip-l1dfl-vmentry" "mds-no"
Re: [PATCH v3 4/4] target/i386: Add notes for versioned CPU models
On Wed, 12 Feb 2020 16:13:28 +0800 Tao Xu wrote: > Add which features are added or removed in this version. Remove the > changed model-id in versioned CPU models, to keep the model name > unchanged at /proc/cpuinfo inside the VM. > > Signed-off-by: Tao Xu > --- > > Changes in v2: > - correct the note of Cascadelake v3 (Xiaoyao) > --- > target/i386/cpu.c | 54 ++- > 1 file changed, 25 insertions(+), 29 deletions(-) > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c > index 81a039beb6..739ef4ce91 100644 > --- a/target/i386/cpu.c > +++ b/target/i386/cpu.c > @@ -2278,10 +2278,9 @@ static X86CPUDefinition builtin_x86_defs[] = { > { > .version = 2, > .alias = "Nehalem-IBRS", > +.note = "IBRS", > .props = (PropValue[]) { > { "spec-ctrl", "on" }, > -{ "model-id", > - "Intel Core i7 9xx (Nehalem Core i7, IBRS update)" }, > { /* end of list */ } > } > }, > @@ -2359,10 +2358,9 @@ static X86CPUDefinition builtin_x86_defs[] = { > { > .version = 2, > .alias = "Westmere-IBRS", > +.note = "IBRS", > .props = (PropValue[]) { > { "spec-ctrl", "on" }, > -{ "model-id", > - "Westmere E56xx/L56xx/X56xx (IBRS update)" }, > { /* end of list */ } > } > }, > @@ -2445,10 +2443,9 @@ static X86CPUDefinition builtin_x86_defs[] = { > { > .version = 2, > .alias = "SandyBridge-IBRS", > +.note = "IBRS", > .props = (PropValue[]) { > { "spec-ctrl", "on" }, > -{ "model-id", > - "Intel Xeon E312xx (Sandy Bridge, IBRS update)" }, > { /* end of list */ } > } > }, > @@ -2537,10 +2534,9 @@ static X86CPUDefinition builtin_x86_defs[] = { > { > .version = 2, > .alias = "IvyBridge-IBRS", > +.note = "IBRS", > .props = (PropValue[]) { > { "spec-ctrl", "on" }, > -{ "model-id", > - "Intel Xeon E3-12xx v2 (Ivy Bridge, IBRS)" }, > { /* end of list */ } > } > }, > @@ -2634,17 +2630,18 @@ static X86CPUDefinition builtin_x86_defs[] = { > { > .version = 2, > .alias = "Haswell-noTSX", > +.note = "no TSX", > .props = (PropValue[]) { > { "hle", "off" }, > { "rtm", "off" }, > { "stepping", "1" }, > -{ "model-id", "Intel Core Processor (Haswell, no TSX)", > }, > { /* end of list */ } > }, > }, > { > .version = 3, > .alias = "Haswell-IBRS", > +.note = "IBRS", > .props = (PropValue[]) { > /* Restore TSX features removed by -v2 above */ > { "hle", "on" }, > @@ -2655,21 +2652,18 @@ static X86CPUDefinition builtin_x86_defs[] = { > */ > { "stepping", "4" }, > { "spec-ctrl", "on" }, > -{ "model-id", > - "Intel Core Processor (Haswell, IBRS)" }, > { /* end of list */ } > } > }, > { > .version = 4, > .alias = "Haswell-noTSX-IBRS", > +.note = "no TSX, IBRS", > .props = (PropValue[]) { > { "hle", "off" }, > { "rtm", "off" }, > /* spec-ctrl was already enabled by -v3 above */ > { "stepping", "1" }, > -{ "model-id", > - "Intel Core Processor (Haswell, no TSX, IBRS)" }, > { /* end of list */ } > } > }, > @@ -2765,35 +2759,33 @@ static X86CPUDefinition builtin_x86_defs[] = { > { > .version = 2, > .alias = "Broadwell-noTSX", > +.note = "no TSX", > .props = (PropValue[]) { > { "hle", "off" }, > { "rtm", "off" }, > -{ "model-id", "Intel Core Processor (Broadwell, no > TSX)", }, > { /* end of list */ } > }, > }, > { > .version = 3, > .alias = "Broadwell-IBRS", > +.note = "IBRS", >
[PATCH v3 4/4] target/i386: Add notes for versioned CPU models
Add which features are added or removed in this version. Remove the changed model-id in versioned CPU models, to keep the model name unchanged at /proc/cpuinfo inside the VM. Signed-off-by: Tao Xu --- Changes in v2: - correct the note of Cascadelake v3 (Xiaoyao) --- target/i386/cpu.c | 54 ++- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 81a039beb6..739ef4ce91 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -2278,10 +2278,9 @@ static X86CPUDefinition builtin_x86_defs[] = { { .version = 2, .alias = "Nehalem-IBRS", +.note = "IBRS", .props = (PropValue[]) { { "spec-ctrl", "on" }, -{ "model-id", - "Intel Core i7 9xx (Nehalem Core i7, IBRS update)" }, { /* end of list */ } } }, @@ -2359,10 +2358,9 @@ static X86CPUDefinition builtin_x86_defs[] = { { .version = 2, .alias = "Westmere-IBRS", +.note = "IBRS", .props = (PropValue[]) { { "spec-ctrl", "on" }, -{ "model-id", - "Westmere E56xx/L56xx/X56xx (IBRS update)" }, { /* end of list */ } } }, @@ -2445,10 +2443,9 @@ static X86CPUDefinition builtin_x86_defs[] = { { .version = 2, .alias = "SandyBridge-IBRS", +.note = "IBRS", .props = (PropValue[]) { { "spec-ctrl", "on" }, -{ "model-id", - "Intel Xeon E312xx (Sandy Bridge, IBRS update)" }, { /* end of list */ } } }, @@ -2537,10 +2534,9 @@ static X86CPUDefinition builtin_x86_defs[] = { { .version = 2, .alias = "IvyBridge-IBRS", +.note = "IBRS", .props = (PropValue[]) { { "spec-ctrl", "on" }, -{ "model-id", - "Intel Xeon E3-12xx v2 (Ivy Bridge, IBRS)" }, { /* end of list */ } } }, @@ -2634,17 +2630,18 @@ static X86CPUDefinition builtin_x86_defs[] = { { .version = 2, .alias = "Haswell-noTSX", +.note = "no TSX", .props = (PropValue[]) { { "hle", "off" }, { "rtm", "off" }, { "stepping", "1" }, -{ "model-id", "Intel Core Processor (Haswell, no TSX)", }, { /* end of list */ } }, }, { .version = 3, .alias = "Haswell-IBRS", +.note = "IBRS", .props = (PropValue[]) { /* Restore TSX features removed by -v2 above */ { "hle", "on" }, @@ -2655,21 +2652,18 @@ static X86CPUDefinition builtin_x86_defs[] = { */ { "stepping", "4" }, { "spec-ctrl", "on" }, -{ "model-id", - "Intel Core Processor (Haswell, IBRS)" }, { /* end of list */ } } }, { .version = 4, .alias = "Haswell-noTSX-IBRS", +.note = "no TSX, IBRS", .props = (PropValue[]) { { "hle", "off" }, { "rtm", "off" }, /* spec-ctrl was already enabled by -v3 above */ { "stepping", "1" }, -{ "model-id", - "Intel Core Processor (Haswell, no TSX, IBRS)" }, { /* end of list */ } } }, @@ -2765,35 +2759,33 @@ static X86CPUDefinition builtin_x86_defs[] = { { .version = 2, .alias = "Broadwell-noTSX", +.note = "no TSX", .props = (PropValue[]) { { "hle", "off" }, { "rtm", "off" }, -{ "model-id", "Intel Core Processor (Broadwell, no TSX)", }, { /* end of list */ } }, }, { .version = 3, .alias = "Broadwell-IBRS", +.note = "IBRS", .props = (PropValue[]) { /* Restore TSX features removed by -v2 above */ { "hle", "on" }, { "rtm", "on" }, { "spec-ctrl", "on" }, -{ "model-id", - "Intel Core Processo