[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 3/8] hw/core: Add smp cache topology for machine
From: |
Zhao Liu |
Subject: |
[PATCH 3/8] hw/core: Add smp cache topology for machine |
Date: |
Thu, 4 Jul 2024 11:15:58 +0800 |
With smp-cache object support, add smp cache topology for machine by
linking the smp-cache object.
Also add a helper to access cache topology level.
Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
---
Changes since RFC v2:
* Linked machine's smp_cache to smp-cache object instead of a builtin
structure. This is to get around the fact that the keyval format of
-machine can't support JSON.
* Wrapped the cache topology level access into a helper.
---
hw/core/machine-smp.c | 6 ++++++
hw/core/machine.c | 9 +++++++++
include/hw/boards.h | 5 ++++-
3 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/hw/core/machine-smp.c b/hw/core/machine-smp.c
index 5d8d7edcbd3f..88a73743eb1c 100644
--- a/hw/core/machine-smp.c
+++ b/hw/core/machine-smp.c
@@ -270,3 +270,9 @@ unsigned int machine_topo_get_threads_per_socket(const
MachineState *ms)
{
return ms->smp.threads * machine_topo_get_cores_per_socket(ms);
}
+
+CpuTopologyLevel machine_get_cache_topo_level(const MachineState *ms,
+ SMPCacheName cache)
+{
+ return ms->smp_cache->props[cache].topo;
+}
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 655d75c21fc1..09ef9fcd4a0b 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -1045,6 +1045,15 @@ static void machine_class_init(ObjectClass *oc, void
*data)
object_class_property_set_description(oc, "smp",
"CPU topology");
+ /* TODO: Implement check() method based on machine support. */
+ object_class_property_add_link(oc, "smp-cache",
+ TYPE_SMP_CACHE,
+ offsetof(MachineState, smp_cache),
+ object_property_allow_set_link,
+ OBJ_PROP_LINK_STRONG);
+ object_class_property_set_description(oc, "smp-cache",
+ "SMP cache property");
+
object_class_property_add(oc, "phandle-start", "int",
machine_get_phandle_start, machine_set_phandle_start,
NULL, NULL);
diff --git a/include/hw/boards.h b/include/hw/boards.h
index ef6f18f2c1a7..56fa252cfcd2 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -6,10 +6,10 @@
#include "exec/memory.h"
#include "sysemu/hostmem.h"
#include "sysemu/blockdev.h"
-#include "qapi/qapi-types-machine.h"
#include "qemu/module.h"
#include "qom/object.h"
#include "hw/core/cpu.h"
+#include "hw/core/smp-cache.h"
#define TYPE_MACHINE_SUFFIX "-machine"
@@ -45,6 +45,8 @@ void machine_parse_smp_config(MachineState *ms,
const SMPConfiguration *config, Error **errp);
unsigned int machine_topo_get_cores_per_socket(const MachineState *ms);
unsigned int machine_topo_get_threads_per_socket(const MachineState *ms);
+CpuTopologyLevel machine_get_cache_topo_level(const MachineState *ms,
+ SMPCacheName cache);
void machine_memory_devices_init(MachineState *ms, hwaddr base, uint64_t size);
/**
@@ -409,6 +411,7 @@ struct MachineState {
AccelState *accelerator;
CPUArchIdList *possible_cpus;
CpuTopology smp;
+ SMPCache *smp_cache;
struct NVDIMMState *nvdimms_state;
struct NumaState *numa_state;
};
--
2.34.1
- Re: [PATCH 2/8] qapi/qom: Introduce smp-cache object, (continued)
- Re: [PATCH 2/8] qapi/qom: Introduce smp-cache object, Zhao Liu, 2024/07/22
- Re: [PATCH 2/8] qapi/qom: Introduce smp-cache object, Markus Armbruster, 2024/07/24
- Re: [PATCH 2/8] qapi/qom: Introduce smp-cache object, Daniel P . Berrangé, 2024/07/24
- Re: [PATCH 2/8] qapi/qom: Introduce smp-cache object, Zhao Liu, 2024/07/24
- Re: [PATCH 2/8] qapi/qom: Introduce smp-cache object, Zhao Liu, 2024/07/24
- Re: [PATCH 2/8] qapi/qom: Introduce smp-cache object, Zhao Liu, 2024/07/24
- Re: [PATCH 2/8] qapi/qom: Introduce smp-cache object, Markus Armbruster, 2024/07/25
- Message not available
- Re: [PATCH 2/8] qapi/qom: Introduce smp-cache object, Jonathan Cameron, 2024/07/25
- Re: [PATCH 2/8] qapi/qom: Introduce smp-cache object, Zhao Liu, 2024/07/25
- Re: [PATCH 2/8] qapi/qom: Introduce smp-cache object, Zhao Liu, 2024/07/25
[PATCH 3/8] hw/core: Add smp cache topology for machine,
Zhao Liu <=
[PATCH 4/8] hw/core: Check smp cache topology support for machine, Zhao Liu, 2024/07/03
[PATCH 6/8] i386/cpu: Update cache topology with machine's configuration, Zhao Liu, 2024/07/03
[PATCH 5/8] i386/cpu: Support thread and module level cache topology, Zhao Liu, 2024/07/03
[PATCH 8/8] qemu-options: Add the description of smp-cache object, Zhao Liu, 2024/07/03
[PATCH 7/8] i386/pc: Support cache topology in -machine for PC machine, Zhao Liu, 2024/07/03