All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH V2] acpi-build: Set FORCE_APIC_CLUSTER_MODEL bit for FADT flags
@ 2014-08-29  3:52 zhanghailiang
  2014-09-03  0:55 ` zhanghailiang
  2014-09-03 13:01 ` Igor Mammedov
  0 siblings, 2 replies; 3+ messages in thread
From: zhanghailiang @ 2014-08-29  3:52 UTC (permalink / raw)
  To: qemu-devel
  Cc: zhanghailiang, mst, luonengjun, peter.huangpeng, qemu-stable,
	huangzhichao, aliguori

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 <huangzhichao@huawei.com>
Signed-off-by: zhanghailiang <zhang.zhanghailiang@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);
+    }
 }
 
 
-- 
1.7.12.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH V2] acpi-build: Set FORCE_APIC_CLUSTER_MODEL bit for FADT flags
  2014-08-29  3:52 [Qemu-devel] [PATCH V2] acpi-build: Set FORCE_APIC_CLUSTER_MODEL bit for FADT flags zhanghailiang
@ 2014-09-03  0:55 ` zhanghailiang
  2014-09-03 13:01 ` Igor Mammedov
  1 sibling, 0 replies; 3+ messages in thread
From: zhanghailiang @ 2014-09-03  0:55 UTC (permalink / raw)
  To: qemu-devel
  Cc: mst, luonengjun, peter.huangpeng, qemu-stable, huangzhichao, aliguori

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<huangzhichao@huawei.com>
> Signed-off-by: zhanghailiang<zhang.zhanghailiang@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);
> +    }
>   }
>
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH V2] acpi-build: Set FORCE_APIC_CLUSTER_MODEL bit for FADT flags
  2014-08-29  3:52 [Qemu-devel] [PATCH V2] acpi-build: Set FORCE_APIC_CLUSTER_MODEL bit for FADT flags zhanghailiang
  2014-09-03  0:55 ` zhanghailiang
@ 2014-09-03 13:01 ` Igor Mammedov
  1 sibling, 0 replies; 3+ messages in thread
From: Igor Mammedov @ 2014-09-03 13:01 UTC (permalink / raw)
  To: zhanghailiang
  Cc: mst, qemu-devel, luonengjun, peter.huangpeng, qemu-stable,
	huangzhichao, aliguori

On Fri, 29 Aug 2014 11:52:51 +0800
zhanghailiang <zhang.zhanghailiang@huawei.com> 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 <huangzhichao@huawei.com>
> Signed-off-by: zhanghailiang <zhang.zhanghailiang@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);
> +    }
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.

It seems reasonable to apply this hack for extending cpu-hotplug usability
with Windows guests, hence:

Reviewed-By: Igor Mammedov <imammedo@redhat.com>

>  }
>  
>  

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-09-03 13:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-29  3:52 [Qemu-devel] [PATCH V2] acpi-build: Set FORCE_APIC_CLUSTER_MODEL bit for FADT flags zhanghailiang
2014-09-03  0:55 ` zhanghailiang
2014-09-03 13:01 ` Igor Mammedov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.