From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
zhanghailiang <zhang.zhanghailiang@huawei.com>,
qemu-stable@nongnu.org, huangzhichao <huangzhichao@huawei.com>,
Anthony Liguori <aliguori@amazon.com>,
Igor Mammedov <imammedo@redhat.com>
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 [thread overview]
Message-ID: <1409751723-17480-17-git-send-email-mst@redhat.com> (raw)
In-Reply-To: <1409751723-17480-1-git-send-email-mst@redhat.com>
From: zhanghailiang <zhang.zhanghailiang@huawei.com>
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: qemu-stable@nongnu.org
Signed-off-by: huangzhichao <huangzhichao@huawei.com>
Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-By: Igor Mammedov <imammedo@redhat.com>
---
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
prev parent reply other threads:[~2014-09-03 13:42 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-03 13:44 [Qemu-devel] [PULL v2 00/16] pci, pc fixes, features Michael S. Tsirkin
2014-09-03 13:44 ` [Qemu-devel] [PULL v2 01/16] iommu: add is_write as a parameter to the translate function of MemoryRegionIOMMUOps Michael S. Tsirkin
2014-09-03 13:44 ` [Qemu-devel] [PULL v2 02/16] intel-iommu: introduce Intel IOMMU (VT-d) emulation Michael S. Tsirkin
2014-09-03 13:44 ` [Qemu-devel] [PULL v2 03/16] intel-iommu: add DMAR table to ACPI tables Michael S. Tsirkin
2014-09-03 13:45 ` [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 13:45 ` [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 13:45 ` [Qemu-devel] [PULL v2 06/16] intel-iommu: add supports for queued invalidation interface Michael S. Tsirkin
2014-09-03 13:45 ` [Qemu-devel] [PULL v2 07/16] intel-iommu: add context-cache to cache context-entry Michael S. Tsirkin
2014-09-03 13:45 ` [Qemu-devel] [PULL v2 08/16] intel-iommu: add IOTLB using hash table Michael S. Tsirkin
2014-09-03 13:45 ` [Qemu-devel] [PULL v2 09/16] vhost_net: cleanup start/stop condition Michael S. Tsirkin
2014-09-03 13:45 ` [Qemu-devel] [PULL v2 10/16] ioh3420: remove unused ioh3420_init() declaration Michael S. Tsirkin
2014-09-03 13:45 ` [Qemu-devel] [PULL v2 11/16] virtio-net: don't run bh on vm stopped Michael S. Tsirkin
2014-09-03 13:45 ` [Qemu-devel] [PULL v2 12/16] pci: avoid losing config updates to MSI/MSIX cap regs Michael S. Tsirkin
2014-09-03 13:45 ` [Qemu-devel] [PULL v2 13/16] vhost_net: start/stop guest notifiers properly Michael S. Tsirkin
2014-09-03 13:45 ` [Qemu-devel] [PULL v2 14/16] vhost_net: init acked_features to backend_features Michael S. Tsirkin
2014-09-03 13:45 ` [Qemu-devel] [PULL v2 15/16] vhost-scsi: init backend features earlier Michael S. Tsirkin
2014-09-03 13:45 ` Michael S. Tsirkin [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1409751723-17480-17-git-send-email-mst@redhat.com \
--to=mst@redhat.com \
--cc=aliguori@amazon.com \
--cc=huangzhichao@huawei.com \
--cc=imammedo@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-stable@nongnu.org \
--cc=zhang.zhanghailiang@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).