[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH v3 11/18] QMP: include CpuInstanceProperties into quer
From: |
Igor Mammedov |
Subject: |
[Qemu-ppc] [PATCH v3 11/18] QMP: include CpuInstanceProperties into query_cpus output output |
Date: |
Wed, 10 May 2017 13:29:55 +0200 |
if board supports CpuInstanceProperties, report them for
each CPU thread listed. Main motivation for this is to
provide these properties introspection via QMP interface
for using in test cases to verify numa node to cpu mapping,
which includes not only boards that support cpu hotplug
and have this info in query-hotpluggable-cpus (pc/spapr)
but also for boards that don't not support hotpluggable-cpus
but support numa mapping (virt-arm).
Signed-off-by: Igor Mammedov <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
---
v2:
* fix checkpatch error and remove extra space after = (Eric)
---
cpus.c | 10 ++++++++++
qapi-schema.json | 6 +++++-
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/cpus.c b/cpus.c
index 740b8dc..4f91d25 100644
--- a/cpus.c
+++ b/cpus.c
@@ -50,6 +50,7 @@
#include "qapi-event.h"
#include "hw/nmi.h"
#include "sysemu/replay.h"
+#include "hw/boards.h"
#ifdef CONFIG_LINUX
@@ -1859,6 +1860,8 @@ void list_cpus(FILE *f, fprintf_function cpu_fprintf,
const char *optarg)
CpuInfoList *qmp_query_cpus(Error **errp)
{
+ MachineState *ms = MACHINE(qdev_get_machine());
+ MachineClass *mc = MACHINE_GET_CLASS(ms);
CpuInfoList *head = NULL, *cur_item = NULL;
CPUState *cpu;
@@ -1909,6 +1912,13 @@ CpuInfoList *qmp_query_cpus(Error **errp)
#else
info->value->arch = CPU_INFO_ARCH_OTHER;
#endif
+ info->value->has_props = !!mc->cpu_index_to_instance_props;
+ if (info->value->has_props) {
+ CpuInstanceProperties *props;
+ props = g_malloc0(sizeof(*props));
+ *props = mc->cpu_index_to_instance_props(ms, cpu->cpu_index);
+ info->value->props = props;
+ }
/* XXX: waiting for the qapi to support GSList */
if (!cur_item) {
diff --git a/qapi-schema.json b/qapi-schema.json
index bf48873..f1bcebe 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -1325,6 +1325,9 @@
#
# @thread_id: ID of the underlying host thread
#
+# @props: properties describing to which node/socket/core/thread
+# virtual CPU belongs to, provided if supported by board (since 2.10)
+#
# @arch: architecture of the cpu, which determines which additional fields
# will be listed (since 2.6)
#
@@ -1335,7 +1338,8 @@
##
{ 'union': 'CpuInfo',
'base': {'CPU': 'int', 'current': 'bool', 'halted': 'bool',
- 'qom_path': 'str', 'thread_id': 'int', 'arch': 'CpuInfoArch' },
+ 'qom_path': 'str', 'thread_id': 'int',
+ '*props': 'CpuInstanceProperties', 'arch': 'CpuInfoArch' },
'discriminator': 'arch',
'data': { 'x86': 'CpuInfoX86',
'sparc': 'CpuInfoSPARC',
--
2.7.4
- [Qemu-ppc] [PATCH v3 06/18] numa: mirror cpu to node mapping in MachineState::possible_cpus, (continued)
[Qemu-ppc] [PATCH v3 08/18] pc: get numa node mapping from possible_cpus instead of numa_get_node_for_cpu(), Igor Mammedov, 2017/05/10
[Qemu-ppc] [PATCH v3 09/18] spapr: get numa node mapping from possible_cpus instead of numa_get_node_for_cpu(), Igor Mammedov, 2017/05/10
[Qemu-ppc] [PATCH v3 10/18] virt-arm: get numa node mapping from possible_cpus instead of numa_get_node_for_cpu(), Igor Mammedov, 2017/05/10
[Qemu-ppc] [PATCH v3 11/18] QMP: include CpuInstanceProperties into query_cpus output output,
Igor Mammedov <=
[Qemu-ppc] [PATCH v3 13/18] numa: remove no longer need numa_post_machine_init(), Igor Mammedov, 2017/05/10
[Qemu-ppc] [PATCH v3 12/18] tests: numa: add case for QMP command query-cpus, Igor Mammedov, 2017/05/10
[Qemu-ppc] [PATCH v3 14/18] machine: call machine init from wrapper, Igor Mammedov, 2017/05/10
[Qemu-ppc] [PATCH v3 15/18] numa: use possible_cpus for not mapped CPUs check, Igor Mammedov, 2017/05/10
[Qemu-ppc] [PATCH v3 16/18] numa: remove node_cpu bitmaps as they are no longer used, Igor Mammedov, 2017/05/10
[Qemu-ppc] [PATCH v3 17/18] numa: add '-numa cpu, ...' option for property based node mapping, Igor Mammedov, 2017/05/10
[Qemu-ppc] [PATCH v3 18/18] tests: check -numa node, cpu=props_list usecase, Igor Mammedov, 2017/05/10
Re: [Qemu-ppc] [PATCH v3 00/18] numa: add '-numa cpu' option, Eduardo Habkost, 2017/05/11