[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v7 03/13] machine: Add SMP Sockets in CpuTopology
From: |
Babu Moger |
Subject: |
[PATCH v7 03/13] machine: Add SMP Sockets in CpuTopology |
Date: |
Wed, 11 Mar 2020 17:53:06 -0500 |
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>
Acked-by: Michael S. Tsirkin <address@hidden>
---
hw/core/machine.c | 1 +
hw/i386/pc.c | 1 +
include/hw/boards.h | 2 ++
softmmu/vl.c | 1 +
4 files changed, 5 insertions(+)
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 4778bc6b08..b958cd1b99 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -757,6 +757,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 662abb549d..05e7f1090f 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -781,6 +781,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 9bc42dfb22..d01056286a 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -236,12 +236,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/softmmu/vl.c b/softmmu/vl.c
index ff2685dff8..dadb798ac7 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -3935,6 +3935,7 @@ void qemu_init(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 v7 00/13] APIC ID fixes for AMD EPYC CPU model, Babu Moger, 2020/03/11
- [PATCH v7 01/13] hw/i386: Introduce X86CPUTopoInfo to contain topology info, Babu Moger, 2020/03/11
- [PATCH v7 02/13] hw/i386: Consolidate topology functions, Babu Moger, 2020/03/11
- [PATCH v7 03/13] machine: Add SMP Sockets in CpuTopology,
Babu Moger <=
- [PATCH v7 04/13] hw/i386: Remove unnecessary initialization in x86_cpu_new, Babu Moger, 2020/03/11
- [PATCH v7 05/13] hw/i386: Update structures to save the number of nodes per package, Babu Moger, 2020/03/11
- [PATCH v7 06/13] hw/i386: Rename apicid_from_topo_ids to x86_apicid_from_topo_ids, Babu Moger, 2020/03/11
- [PATCH v7 07/13] hw/386: Add EPYC mode topology decoding functions, Babu Moger, 2020/03/11
- [PATCH v7 08/13] target/i386: Cleanup and use the EPYC mode topology functions, Babu Moger, 2020/03/11
- [PATCH v7 09/13] hw/i386: Introduce apicid functions inside X86MachineState, Babu Moger, 2020/03/11
- [PATCH v7 10/13] i386: Introduce use_epyc_apic_id_encoding in X86CPUDefinition, Babu Moger, 2020/03/11