CPUID.1.EBX[23:16]: Maximum number of addressable IDs for logical processors in this physical package. CPUID.4:EAX[31:26]: Maximum number of addressable IDs for processor cores in the physical package.
The current qemu code doesn't limit the value written to these two fields. If the guest has a huge number of cores, APs (application processor) will fail to bring up and the wrong info will be reported. According to HW behavior, setting max value written to CPUID.1.EBX[23:16] to 255, and CPUID.4:EAX[31:26] to 63. --- Changes v2 -> v3: - Add patch 2. - Revise the commit message and comment to be clearer. - Using MIN() for limitation. Changes v1 -> v2: - Revise the commit message and comment to more clearer. - Rebased to v8.1.0-rc2. Qian Wen (2): target/i386: Avoid cpu number overflow in legacy topology target/i386: Avoid overflow of the cache parameter enumerated by leaf 4 target/i386/cpu.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) base-commit: 0d52116fd82cdd1f4a88837336af5b6290c364a4 -- 2.25.1