On Mon, Jun 16, 2025 at 01:46:59 +0200, Hector Cao wrote:
Hello,
A friendly ping,
To fix this issue, I would like to propose this solution.
Here is the draft patch, I can submit a proper one in a separate mail if we
can reach an agreement
on this solution.
Thanks !
diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c
index 0f7eb8f48b..570160c18f 100644
--- a/src/cpu/cpu_x86.c
+++ b/src/cpu/cpu_x86.c
@@ -2922,6 +2922,16 @@ virCPUx86GetHost(virCPUDef *cpu,
},
};
+ if ((item.data.msr.index == 0x48B)
+ || (item.data.msr.index == 0x48D)
+ || (item.data.msr.index == 0x48E)
+ || (item.data.msr.index == 0x48F)
+ || (item.data.msr.index == 0x490)
+ ) {
+ item.data.msr.eax = item.data.msr.edx & ~item.data.msr.eax;
+ item.data.msr.edx = 0;
+ }
+
virCPUx86DataAdd(cpuData, &item);
}
}
Hi, I apologize for a late response. I need to study the details to
understand what actually is the problem and mainly the consequences of
changing it and the best place for such a change. In general, the
conversion from raw bits to names and back is only limited to a single
host and I think there is just one place where the actual values matter
(more than being distinct) and the result is not used for anything
serious. Thus we should be able to change the values in out CPU map
without introducing real issues, but I need to think about it more.
Jirka