[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 16/16] acpi-build: Set FORCE_APIC_CLUSTER_MODEL bi
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] [PULL v2 16/16] acpi-build: Set FORCE_APIC_CLUSTER_MODEL bit for FADT flags |
Date: |
Wed, 3 Sep 2014 16:45:49 +0300 |
From: zhanghailiang <address@hidden>
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.
Note:
This flag was introduced later than ACPI v1.0 specification while QEMU
generates v1.0 tables only, but...
linux kernel ignores this flag, so patch has no influence on it.
Tested with Win[XPsp3|Srv2003EE|Srv2008DC|Srv2008R2|Srv2012R2], there
isn't BSODs and guests boot just fine. In cases guest doesn't support
cpu-hotplug, cpu becomes visible after reboot and in case the guest
supports cpu-hotplug, it works as expected with this patch.
Cc: address@hidden
Signed-off-by: huangzhichao <address@hidden>
Signed-off-by: zhanghailiang <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-By: Igor Mammedov <address@hidden>
---
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 3e7fba3..a313321 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -551,6 +551,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);
+ }
}
--
MST
- [Qemu-devel] [PULL v2 06/16] intel-iommu: add supports for queued invalidation interface, (continued)
- [Qemu-devel] [PULL v2 06/16] intel-iommu: add supports for queued invalidation interface, Michael S. Tsirkin, 2014/09/03
- [Qemu-devel] [PULL v2 04/16] intel-iommu: add Intel IOMMU emulation to q35 and add a machine option "iommu" as a switch, Michael S. Tsirkin, 2014/09/03
- [Qemu-devel] [PULL v2 07/16] intel-iommu: add context-cache to cache context-entry, Michael S. Tsirkin, 2014/09/03
- [Qemu-devel] [PULL v2 05/16] intel-iommu: fix coding style issues around in q35.c and machine.c, Michael S. Tsirkin, 2014/09/03
- [Qemu-devel] [PULL v2 09/16] vhost_net: cleanup start/stop condition, Michael S. Tsirkin, 2014/09/03
- [Qemu-devel] [PULL v2 08/16] intel-iommu: add IOTLB using hash table, Michael S. Tsirkin, 2014/09/03
- [Qemu-devel] [PULL v2 12/16] pci: avoid losing config updates to MSI/MSIX cap regs, Michael S. Tsirkin, 2014/09/03
- [Qemu-devel] [PULL v2 10/16] ioh3420: remove unused ioh3420_init() declaration, Michael S. Tsirkin, 2014/09/03
- [Qemu-devel] [PULL v2 14/16] vhost_net: init acked_features to backend_features, Michael S. Tsirkin, 2014/09/03
- [Qemu-devel] [PULL v2 15/16] vhost-scsi: init backend features earlier, Michael S. Tsirkin, 2014/09/03
- [Qemu-devel] [PULL v2 16/16] acpi-build: Set FORCE_APIC_CLUSTER_MODEL bit for FADT flags,
Michael S. Tsirkin <=
- [Qemu-devel] [PULL v2 11/16] virtio-net: don't run bh on vm stopped, Michael S. Tsirkin, 2014/09/03
- [Qemu-devel] [PULL v2 13/16] vhost_net: start/stop guest notifiers properly, Michael S. Tsirkin, 2014/09/03