> However, back to the patch, I think we cannot change it as this patch > directly. Instead, we need a compat_props for the changed behavior, because > this isn't a bug fix and it introduces guest-visible differences.
This is a fix, not a new feature, so compat_props is not needed. > For ancient Intel CPUs, EBX[23:16] did represent the number of Logical > processor per package. I believe this should be the reason why QEMU > implemented it as is: > > - on SDM version 013, EBX[23:16]: Number of logical processors per > physical processor; two for the Pentium 4 processor supporting > Hyper-Threading Technology. > > - on SDM version 015, it changed to: Number of initial APIC IDs reserved > for this physical package. Normally, this is the number of logical > processors per physical package. > > - on SDM version 016, it changed to: Maximum number of logical processors > in this physical package. > > - finally, starting from SDM version 026, it changed to what reads now: > Maximum number of addressable IDs for logical processors in this physical > package. And this is an architecturally defined CPUID, so SDM ensures backward compatibility. Regards, Zhao
