diff mbox

acpi-build: Set FORCE_APIC_CLUSTER_MODEL bit of FADT flags

Message ID 1408610249-7452-1-git-send-email-zhang.zhanghailiang@huawei.com
State New
Headers show

Commit Message

Zhanghailiang Aug. 21, 2014, 8:37 a.m. UTC
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>
---
 hw/i386/acpi-build.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Zhanghailiang Aug. 25, 2014, 8:28 a.m. UTC | #1
Hi,

Ping...

Are there any news about this patch?

Thanks,
zhanghailiang
> 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>
> ---
>   hw/i386/acpi-build.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index 10b84d0..fed4501 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -545,7 +545,8 @@ static void fadt_setup(AcpiFadtDescriptorRev1 *fadt, AcpiPmInfo *pm)
>                                 (1<<  ACPI_FADT_F_PROC_C1) |
>                                 (1<<  ACPI_FADT_F_SLP_BUTTON) |
>                                 (1<<  ACPI_FADT_F_RTC_S4));
> -    fadt->flags |= cpu_to_le32(1<<  ACPI_FADT_F_USE_PLATFORM_CLOCK);
> +    fadt->flags |= cpu_to_le32(1<<  ACPI_FADT_F_USE_PLATFORM_CLOCK |
> +                               1<<  ACPI_FADT_F_FORCE_APIC_CLUSTER_MODEL);
>   }
>
>
Michael S. Tsirkin Aug. 27, 2014, 1:59 p.m. UTC | #2
On Thu, Aug 21, 2014 at 04:37:29PM +0800, 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>

What if maxcpus is low?
No reason to force cluster model then, right?

> ---
>  hw/i386/acpi-build.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index 10b84d0..fed4501 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -545,7 +545,8 @@ static void fadt_setup(AcpiFadtDescriptorRev1 *fadt, AcpiPmInfo *pm)
>                                (1 << ACPI_FADT_F_PROC_C1) |
>                                (1 << ACPI_FADT_F_SLP_BUTTON) |
>                                (1 << ACPI_FADT_F_RTC_S4));
> -    fadt->flags |= cpu_to_le32(1 << ACPI_FADT_F_USE_PLATFORM_CLOCK);
> +    fadt->flags |= cpu_to_le32(1 << ACPI_FADT_F_USE_PLATFORM_CLOCK |
> +                               1 << ACPI_FADT_F_FORCE_APIC_CLUSTER_MODEL);
>  }
>  
>  
> -- 
> 1.7.12.4
>
Zhanghailiang Aug. 28, 2014, 1:30 a.m. UTC | #3
On 2014/8/27 21:59, Michael S. Tsirkin wrote:
> On Thu, Aug 21, 2014 at 04:37:29PM +0800, 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>
>
> What if maxcpus is low?
> No reason to force cluster model then, right?
>
Hi Michael,

Yes, It is better not to force cluster model when maxcpus is less than 8.

Can we set this bit according to the value of max_cpus?
Anyway, i think it is a bug;)

What's your suggestion? Thanks.

Best Regards,
zhanghailiang

>> ---
>>   hw/i386/acpi-build.c | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
>> index 10b84d0..fed4501 100644
>> --- a/hw/i386/acpi-build.c
>> +++ b/hw/i386/acpi-build.c
>> @@ -545,7 +545,8 @@ static void fadt_setup(AcpiFadtDescriptorRev1 *fadt, AcpiPmInfo *pm)
>>                                 (1<<  ACPI_FADT_F_PROC_C1) |
>>                                 (1<<  ACPI_FADT_F_SLP_BUTTON) |
>>                                 (1<<  ACPI_FADT_F_RTC_S4));
>> -    fadt->flags |= cpu_to_le32(1<<  ACPI_FADT_F_USE_PLATFORM_CLOCK);
>> +    fadt->flags |= cpu_to_le32(1<<  ACPI_FADT_F_USE_PLATFORM_CLOCK |
>> +                               1<<  ACPI_FADT_F_FORCE_APIC_CLUSTER_MODEL);
>>   }
>>
>>
>> --
>> 1.7.12.4
>>
>
> .
>
diff mbox

Patch

diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 10b84d0..fed4501 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -545,7 +545,8 @@  static void fadt_setup(AcpiFadtDescriptorRev1 *fadt, AcpiPmInfo *pm)
                               (1 << ACPI_FADT_F_PROC_C1) |
                               (1 << ACPI_FADT_F_SLP_BUTTON) |
                               (1 << ACPI_FADT_F_RTC_S4));
-    fadt->flags |= cpu_to_le32(1 << ACPI_FADT_F_USE_PLATFORM_CLOCK);
+    fadt->flags |= cpu_to_le32(1 << ACPI_FADT_F_USE_PLATFORM_CLOCK |
+                               1 << ACPI_FADT_F_FORCE_APIC_CLUSTER_MODEL);
 }