[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 04/16] machine: Add SMP Sockets in CpuTopology
From: |
Babu Moger |
Subject: |
[PATCH v5 04/16] machine: Add SMP Sockets in CpuTopology |
Date: |
Tue, 03 Mar 2020 13:57:18 -0600 |
User-agent: |
StGit/unknown-version |
Store the smp sockets in CpuTopology. The socket information required to
build the apic id in EPYC mode. Right now socket information is not passed
to down when decoding the apic id. Add the socket information here.
Signed-off-by: Babu Moger <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
---
hw/core/machine.c | 1 +
hw/i386/pc.c | 1 +
include/hw/boards.h | 2 ++
vl.c | 1 +
4 files changed, 5 insertions(+)
diff --git a/hw/core/machine.c b/hw/core/machine.c
index d8e30e4895..2582ce94f6 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -728,6 +728,7 @@ static void smp_parse(MachineState *ms, QemuOpts *opts)
ms->smp.cpus = cpus;
ms->smp.cores = cores;
ms->smp.threads = threads;
+ ms->smp.sockets = sockets;
}
if (ms->smp.cpus > 1) {
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index ef23ae2af5..68bf08f285 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -780,6 +780,7 @@ void pc_smp_parse(MachineState *ms, QemuOpts *opts)
ms->smp.cpus = cpus;
ms->smp.cores = cores;
ms->smp.threads = threads;
+ ms->smp.sockets = sockets;
x86ms->smp_dies = dies;
}
diff --git a/include/hw/boards.h b/include/hw/boards.h
index fb1b43d5b9..320dd14e02 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -252,12 +252,14 @@ typedef struct DeviceMemoryState {
* @cpus: the number of present logical processors on the machine
* @cores: the number of cores in one package
* @threads: the number of threads in one core
+ * @sockets: the number of sockets on the machine
* @max_cpus: the maximum number of logical processors on the machine
*/
typedef struct CpuTopology {
unsigned int cpus;
unsigned int cores;
unsigned int threads;
+ unsigned int sockets;
unsigned int max_cpus;
} CpuTopology;
diff --git a/vl.c b/vl.c
index 7dcb0879c4..f77b1285c6 100644
--- a/vl.c
+++ b/vl.c
@@ -3949,6 +3949,7 @@ int main(int argc, char **argv, char **envp)
current_machine->smp.max_cpus = machine_class->default_cpus;
current_machine->smp.cores = 1;
current_machine->smp.threads = 1;
+ current_machine->smp.sockets = 1;
machine_class->smp_parse(current_machine,
qemu_opts_find(qemu_find_opts("smp-opts"), NULL));
- [PATCH v5 00/16] APIC ID fixes for AMD EPYC CPU model, Babu Moger, 2020/03/03
- [PATCH v5 01/16] hw/i386: Rename X86CPUTopoInfo structure to X86CPUTopoIDs, Babu Moger, 2020/03/03
- [PATCH v5 03/16] hw/i386: Consolidate topology functions, Babu Moger, 2020/03/03
- [PATCH v5 05/16] hw/i386: Remove unnecessary initialization in x86_cpu_new, Babu Moger, 2020/03/03
- [PATCH v5 02/16] hw/i386: Introduce X86CPUTopoInfo to contain topology info, Babu Moger, 2020/03/03
- [PATCH v5 04/16] machine: Add SMP Sockets in CpuTopology,
Babu Moger <=
- [PATCH v5 06/16] hw/i386: Update structures to save the number of nodes per package, Babu Moger, 2020/03/03
- [PATCH v5 08/16] hw/386: Add EPYC mode topology decoding functions, Babu Moger, 2020/03/03
- [PATCH v5 07/16] hw/i386: Rename apicid_from_topo_ids to x86_apicid_from_topo_ids, Babu Moger, 2020/03/03
- [PATCH v5 11/16] target/i386: Load apicid model specific handlers from X86CPUDefinition, Babu Moger, 2020/03/03