[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-trivial] [Qemu-devel] [PATCH 1/9] cpu/topology: add struct CpuTopo
From: |
Like Xu |
Subject: |
[Qemu-trivial] [Qemu-devel] [PATCH 1/9] cpu/topology: add struct CpuTopology to MachineState |
Date: |
Fri, 29 Mar 2019 16:48:37 +0800 |
Signed-off-by: Like Xu <address@hidden>
---
include/hw/arm/virt.h | 2 +-
include/hw/boards.h | 8 ++++++++
include/sysemu/sysemu.h | 2 +-
vl.c | 7 ++++++-
4 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h
index 507517c..724da0c 100644
--- a/include/hw/arm/virt.h
+++ b/include/hw/arm/virt.h
@@ -123,7 +123,7 @@ typedef struct {
struct arm_boot_info bootinfo;
MemMapEntry *memmap;
const int *irqmap;
- int smp_cpus;
+ unsigned int smp_cpus;
void *fdt;
int fdt_size;
uint32_t clock_phandle;
diff --git a/include/hw/boards.h b/include/hw/boards.h
index e231860..cbde276 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -231,6 +231,13 @@ typedef struct DeviceMemoryState {
MemoryRegion mr;
} DeviceMemoryState;
+typedef struct CpuTopology {
+ unsigned int smp_cpus;
+ unsigned int smp_cores;
+ unsigned int smp_threads;
+ unsigned int max_cpus;
+} CpuTopology;
+
/**
* MachineState:
*/
@@ -273,6 +280,7 @@ struct MachineState {
const char *cpu_type;
AccelState *accelerator;
CPUArchIdList *possible_cpus;
+ CpuTopology topo;
struct NVDIMMState *nvdimms_state;
};
diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h
index 6065d9e..c0d7d7c 100644
--- a/include/sysemu/sysemu.h
+++ b/include/sysemu/sysemu.h
@@ -100,7 +100,7 @@ extern const char *keyboard_layout;
extern int win2k_install_hack;
extern int alt_grab;
extern int ctrl_grab;
-extern int smp_cpus;
+extern unsigned int smp_cpus;
extern unsigned int max_cpus;
extern int cursor_hide;
extern int graphic_rotate;
diff --git a/vl.c b/vl.c
index d61d560..9089253 100644
--- a/vl.c
+++ b/vl.c
@@ -162,7 +162,7 @@ static Chardev **serial_hds;
Chardev *parallel_hds[MAX_PARALLEL_PORTS];
int win2k_install_hack = 0;
int singlestep = 0;
-int smp_cpus;
+unsigned int smp_cpus;
unsigned int max_cpus;
int smp_cores = 1;
int smp_threads = 1;
@@ -4116,6 +4116,11 @@ int main(int argc, char **argv, char **envp)
smp_parse(qemu_opts_find(qemu_find_opts("smp-opts"), NULL));
+ current_machine->topo.smp_cpus = smp_cpus;
+ current_machine->topo.max_cpus = max_cpus;
+ current_machine->topo.smp_cores = smp_cores;
+ current_machine->topo.smp_threads = smp_threads;
+
/* sanity-check smp_cpus and max_cpus against machine_class */
if (smp_cpus < machine_class->min_cpus) {
error_report("Invalid SMP CPUs %d. The min CPUs "
--
1.8.3.1