Hi, Ping...
Thanks, zhanghailiang On 2014/8/29 11:52, zhanghailiang wrote:
If we start Windows 2008 R2 DataCenter with number of cpu less than 8, The system will use APIC Flat Logical destination mode as default configuration, Which has an upper limit of 8 CPUs. The fault is that VM can not show all processors within Task Manager if we hot-add cpus when the number of cpus in VM extends the limit of 8. If we use cluster destination model, the problem will be solved. Signed-off-by: huangzhichao<huangzhic...@huawei.com> Signed-off-by: zhanghailiang<zhang.zhanghaili...@huawei.com> --- v2: - Set this bit when max_cpus> 8 --- hw/i386/acpi-build.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 85e5834..cdc3b08 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -550,6 +550,12 @@ static void fadt_setup(AcpiFadtDescriptorRev1 *fadt, AcpiPmInfo *pm) (1<< ACPI_FADT_F_SLP_BUTTON) | (1<< ACPI_FADT_F_RTC_S4)); fadt->flags |= cpu_to_le32(1<< ACPI_FADT_F_USE_PLATFORM_CLOCK); + /* APIC destination mode ("Flat Logical") has an upper limit of 8 CPUs + * For more than 8 CPUs, "Clustered Logical" mode has to be used + */ + if (max_cpus> 8) { + fadt->flags |= cpu_to_le32(1<< ACPI_FADT_F_FORCE_APIC_CLUSTER_MODEL); + } }