Bugfix: hw/acpi: Use max_cpus instead of cpus when build PPTT table
The field "cpus" is the initial number of CPU for guest, and the field "max_cpus"
is the max number of CPU after CPU hotplug. When building PPTT for guest, we
should take all CPUs into account, otherwise the "smp_sockets" is wrong.
Fixes: 7cfcd8c8a2fe ("build smt processor structure to support smt topology")
Signed-off-by: Keqian Zhu <zhukeqian1@huawei.com>
This commit is contained in:
parent
9f218d7c43
commit
4b608eccfd
32
Bugfix-hw-acpi-Use-max_cpus-instead-of-cpus-when-bui.patch
Normal file
32
Bugfix-hw-acpi-Use-max_cpus-instead-of-cpus-when-bui.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
From 38734e26ce3840d459da13607a9d46de24a15388 Mon Sep 17 00:00:00 2001
|
||||||
|
From: kevinZhu <zhukeqian94@163.com>
|
||||||
|
Date: Thu, 29 Oct 2020 19:24:48 +0800
|
||||||
|
Subject: [PATCH] Bugfix: hw/acpi: Use max_cpus instead of cpus when build PPTT
|
||||||
|
table
|
||||||
|
|
||||||
|
The field "cpus" is the initial number of CPU for guest, and the field "max_cpus"
|
||||||
|
is the max number of CPU after CPU hotplug. When building PPTT for guest, we
|
||||||
|
should take all CPUs into account, otherwise the "smp_sockets" is wrong.
|
||||||
|
|
||||||
|
Fixes: 7cfcd8c8a2fe ("build smt processor structure to support smt topology")
|
||||||
|
Signed-off-by: Keqian Zhu <zhukeqian1@huawei.com>
|
||||||
|
---
|
||||||
|
hw/acpi/aml-build.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c
|
||||||
|
index 8a3b51c835..f01669df57 100644
|
||||||
|
--- a/hw/acpi/aml-build.c
|
||||||
|
+++ b/hw/acpi/aml-build.c
|
||||||
|
@@ -167,7 +167,7 @@ void build_pptt(GArray *table_data, BIOSLinker *linker, int possible_cpus)
|
||||||
|
struct offset_status offset;
|
||||||
|
const MachineState *ms = MACHINE(qdev_get_machine());
|
||||||
|
unsigned int smp_cores = ms->smp.cores;
|
||||||
|
- unsigned int smp_sockets = ms->smp.cpus / (smp_cores * ms->smp.threads);
|
||||||
|
+ unsigned int smp_sockets = ms->smp.max_cpus / (smp_cores * ms->smp.threads);
|
||||||
|
|
||||||
|
acpi_data_push(table_data, sizeof(AcpiTableHeader));
|
||||||
|
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user