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);
+    }
  }





Reply via email to