On 7/24/2024 6:29 PM, Manish wrote:
Thanks Igor

On 24/07/24 2:30 pm, Igor Mammedov wrote:
!-------------------------------------------------------------------|
   CAUTION: External Email

|-------------------------------------------------------------------!

On Wed, 24 Jul 2024 07:52:26 +0000
"manish.mishra"<manish.mis...@nutanix.com>  wrote:

From: Manish Mishra<manish.mis...@nutanix.com>

QEMU does not set 0x1f in case VM does not have extended CPU topology
and expects guests to fallback to 0xb. Some versions of Windows does not
like this behavior and expects this leaf to be populated. As a result Windows
VM fails with blue screen.
BSOD usually has error code displayed, it would be better to specify it here
this way whomever searching for the error, can find this patch/commit
Sorry for earlier response, i do not see blue screen it seems to be falling in uefi back quickly and i do not see any details here. I am attaching image.

Leaf 0x1f is superset of 0xb, so it makes sense to set 0x1f equivalent
to 0xb by default and workaround windows issue.>
This change adds a
new property 'cpuid-0x1f-enforce' to set leaf 0x1f equivalent to 0xb in
case extended CPU topology is not configured and behave as before otherwise.
repeating question
why we need to use extra property instead of just adding 0x1f leaf for CPU models
that supposed to have it?

As i mentioned in earlier response. "Windows expects it only when we have set max cpuid level greater than or equal to 0x1f. I mean if it is exposed it should not be all zeros. SapphireRapids CPU definition raised cpuid level to 0x20, so we starting seeing it with SapphireRapids."

Windows does not expect 0x1f to be present for any CPU model. But if it is exposed to the guest, it expects non-zero values.

Please fix Windows!

No guarantee from Intel that leaf 0x1f should report non-zero value when max cpuid level >= 0x1f.

Please see SDM.vol2.CPUID chapter.

INPUT EAX = 1FH: Returns V2 Extended Topology Information

When CPUID executes with EAX set to 1FH, the processor returns information about extended topology enumeration data. Software must detect the presence of CPUID leaf 1FH by verifying (a) the highest leaf index supported by CPUID is >= 1FH, and (b) CPUID.1FH:EBX[15:0] reports a non-zero value. See Table 3-17.

Reply via email to