[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH for-2.10 15/23] QMP: include CpuInstanceProperties i
From: |
Igor Mammedov |
Subject: |
[Qemu-devel] [PATCH for-2.10 15/23] QMP: include CpuInstanceProperties into query_cpus output output |
Date: |
Wed, 22 Mar 2017 14:32:40 +0100 |
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>
---
cpus.c | 9 +++++++++
qapi-schema.json | 6 +++++-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/cpus.c b/cpus.c
index 167d961..03aa12c 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
@@ -1810,6 +1811,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;
@@ -1860,6 +1863,12 @@ CpuInfoList *qmp_query_cpus(Error **errp)
#else
info->value->arch = CPU_INFO_ARCH_OTHER;
#endif
+ if ((info->value->has_props = !!mc->cpu_index_to_instance_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 68a4327..a6b5955 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -1322,6 +1322,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)
#
@@ -1332,7 +1335,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-devel] [PATCH for-2.10 07/23] pc: add node-id property to CPU, (continued)
- [Qemu-devel] [PATCH for-2.10 07/23] pc: add node-id property to CPU, Igor Mammedov, 2017/03/22
- [Qemu-devel] [PATCH for-2.10 08/23] virt-arm: add node-id property to CPU, Igor Mammedov, 2017/03/22
- [Qemu-devel] [PATCH for-2.10 09/23] numa: add check that board supports cpu_index to node mapping, Igor Mammedov, 2017/03/22
- [Qemu-devel] [PATCH for-2.10 10/23] numa: mirror cpu to node mapping in MachineState::possible_cpus, Igor Mammedov, 2017/03/22
- [Qemu-devel] [PATCH for-2.10 11/23] numa: do default mapping based on possible_cpus instead of node_cpu bitmaps, Igor Mammedov, 2017/03/22
- [Qemu-devel] [PATCH for-2.10 12/23] pc: get numa node mapping from possible_cpus instead of numa_get_node_for_cpu(), Igor Mammedov, 2017/03/22
- [Qemu-devel] [PATCH for-2.10 13/23] spapr: get numa node mapping from possible_cpus instead of numa_get_node_for_cpu(), Igor Mammedov, 2017/03/22
- [Qemu-devel] [PATCH for-2.10 14/23] virt-arm: get numa node mapping from possible_cpus instead of numa_get_node_for_cpu(), Igor Mammedov, 2017/03/22
- [Qemu-devel] [PATCH for-2.10 15/23] QMP: include CpuInstanceProperties into query_cpus output output,
Igor Mammedov <=
- [Qemu-devel] [PATCH for-2.10 16/23] tests: numa: add case for QMP command query-cpus, Igor Mammedov, 2017/03/22
- [Qemu-devel] [PATCH for-2.10 17/23] numa: remove no longer used numa_get_node_for_cpu(), Igor Mammedov, 2017/03/22
- [Qemu-devel] [PATCH for-2.10 18/23] numa: remove no longer need numa_post_machine_init(), Igor Mammedov, 2017/03/22
- [Qemu-devel] [PATCH for-2.10 20/23] numa: use possible_cpus for not mapped CPUs check, Igor Mammedov, 2017/03/22
- [Qemu-devel] [PATCH for-2.10 19/23] machine: call machine init from wrapper, Igor Mammedov, 2017/03/22