diff mbox series

[v3] target/i386: Fix model number of Zhaoxin YongFeng vCPU template

Message ID 20250414075342.411626-1-ewanhai-oc@zhaoxin.com (mailing list archive)
State New
Headers show
Series [v3] target/i386: Fix model number of Zhaoxin YongFeng vCPU template | expand

Commit Message

Ewan Hai April 14, 2025, 7:53 a.m. UTC
The model number was mistakenly set to 0x0b (11) in commit ff04bc1ac4.
The correct value is 0x5b. This mistake occurred because the extended
model bits in cpuid[eax=0x1].eax were overlooked, and only the base
model was used.

Using the wrong model number can affect guest behavior. One known issue
is that vPMU (which relies on the model number) may fail to operate
correctly.

This patch corrects the model field by introducing a new vCPU version.

Fixes: ff04bc1ac4 ("target/i386: Introduce Zhaoxin Yongfeng CPU model")
Signed-off-by: Ewan Hai <ewanhai-oc@zhaoxin.com>
---
 target/i386/cpu.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Zhao Liu April 14, 2025, 3:05 p.m. UTC | #1
On Mon, Apr 14, 2025 at 03:53:42AM -0400, Ewan Hai wrote:
> Date: Mon, 14 Apr 2025 03:53:42 -0400
> From: Ewan Hai <ewanhai-oc@zhaoxin.com>
> Subject: [PATCH v3] target/i386: Fix model number of Zhaoxin YongFeng vCPU
>  template
> X-Mailer: git-send-email 2.34.1
> 
> The model number was mistakenly set to 0x0b (11) in commit ff04bc1ac4.
> The correct value is 0x5b. This mistake occurred because the extended
> model bits in cpuid[eax=0x1].eax were overlooked, and only the base
> model was used.
> 
> Using the wrong model number can affect guest behavior. One known issue
> is that vPMU (which relies on the model number) may fail to operate
> correctly.
> 
> This patch corrects the model field by introducing a new vCPU version.
> 
> Fixes: ff04bc1ac4 ("target/i386: Introduce Zhaoxin Yongfeng CPU model")
> Signed-off-by: Ewan Hai <ewanhai-oc@zhaoxin.com>
> ---
>  target/i386/cpu.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>

BTW, if you want to add more notes or explaination to strongly ask users
to use v2, you can add a section "Preferred CPU models for Zhaoxin x86
hosts" in docs/system/cpu-models-x86.rst.inc.

Thanks,
Zhao
Ewan Hai April 15, 2025, 1:44 a.m. UTC | #2
On 4/14/25 11:05 PM, Zhao Liu wrote:
> 
> On Mon, Apr 14, 2025 at 03:53:42AM -0400, Ewan Hai wrote:
>> Date: Mon, 14 Apr 2025 03:53:42 -0400
>> From: Ewan Hai <ewanhai-oc@zhaoxin.com>
>> Subject: [PATCH v3] target/i386: Fix model number of Zhaoxin YongFeng vCPU
>>   template
>> X-Mailer: git-send-email 2.34.1
>>
>> The model number was mistakenly set to 0x0b (11) in commit ff04bc1ac4.
>> The correct value is 0x5b. This mistake occurred because the extended
>> model bits in cpuid[eax=0x1].eax were overlooked, and only the base
>> model was used.
>>
>> Using the wrong model number can affect guest behavior. One known issue
>> is that vPMU (which relies on the model number) may fail to operate
>> correctly.
>>
>> This patch corrects the model field by introducing a new vCPU version.
>>
>> Fixes: ff04bc1ac4 ("target/i386: Introduce Zhaoxin Yongfeng CPU model")
>> Signed-off-by: Ewan Hai <ewanhai-oc@zhaoxin.com>
>> ---
>>   target/i386/cpu.c | 12 ++++++++++++
>>   1 file changed, 12 insertions(+)
> 
> Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
> 
> BTW, if you want to add more notes or explaination to strongly ask users
> to use v2, you can add a section "Preferred CPU models for Zhaoxin x86
> hosts" in docs/system/cpu-models-x86.rst.inc.

Thanks for the reminder and the review, Zhao. I'll send a v4 patch that includes 
a new section titled “Preferred CPU models for Zhaoxin x86 hosts” in 
docs/system/cpu-models-x86.rst.inc to strongly recommend using v2.
diff mbox series

Patch

diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index 1b64ceaaba..3fb1ec62da 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -5621,6 +5621,18 @@  static const X86CPUDefinition builtin_x86_defs[] = {
         .features[FEAT_VMX_VMFUNC] = MSR_VMX_VMFUNC_EPT_SWITCHING,
         .xlevel = 0x80000008,
         .model_id = "Zhaoxin YongFeng Processor",
+        .versions = (X86CPUVersionDefinition[]) {
+            { .version = 1 },
+            {
+                .version = 2,
+                .note = "with the correct model number",
+                .props = (PropValue[]) {
+                    { "model", "0x5b" },
+                    { /* end of list */ }
+                }
+            },
+            { /* end of list */ }
+        }
     },
 };