From: Igor Mammedov <imammedo@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
Andrew Jones <drjones@redhat.com>,
Eduardo Habkost <ehabkost@redhat.com>,
qemu-arm@nongnu.org, qemu-ppc@nongnu.org,
Shannon Zhao <zhaoshenglong@huawei.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Eric Blake <eblake@redhat.com>,
David Gibson <david@gibson.dropbear.id.au>
Subject: [Qemu-arm] [PATCH for-2.10 15/23] QMP: include CpuInstanceProperties into query_cpus output output
Date: Wed, 22 Mar 2017 14:32:40 +0100 [thread overview]
Message-ID: <1490189568-167621-16-git-send-email-imammedo@redhat.com> (raw)
In-Reply-To: <1490189568-167621-1-git-send-email-imammedo@redhat.com>
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 <imammedo@redhat.com>
---
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
next prev parent reply other threads:[~2017-03-22 13:41 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-22 13:32 [Qemu-arm] [PATCH for-2.10 00/23] numa: add '-numa cpu' option Igor Mammedov
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 01/23] tests: add CPUs to numa node mapping test Igor Mammedov
2017-03-27 0:31 ` David Gibson
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 02/23] hw/arm/virt: extract mp-affinity calculation in separate function Igor Mammedov
2017-04-25 14:09 ` [Qemu-arm] [Qemu-devel] " Andrew Jones
2017-04-25 14:39 ` Igor Mammedov
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 03/23] hw/arm/virt: use machine->possible_cpus for storing possible topology info Igor Mammedov
2017-04-25 14:28 ` [Qemu-arm] [Qemu-devel] " Andrew Jones
2017-04-25 14:36 ` Igor Mammedov
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 04/23] hw/arm/virt: explicitly allocate cpu_index for cpus Igor Mammedov
2017-04-25 14:33 ` [Qemu-arm] [Qemu-devel] " Andrew Jones
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 05/23] numa: move source of default CPUs to NUMA node mapping into boards Igor Mammedov
2017-03-23 6:10 ` [Qemu-devel] " Bharata B Rao
2017-03-23 8:48 ` [Qemu-arm] " Igor Mammedov
2017-03-28 4:19 ` David Gibson
2017-03-28 10:53 ` [Qemu-arm] " Igor Mammedov
2017-03-29 2:24 ` David Gibson
2017-03-29 11:48 ` Igor Mammedov
2017-04-20 14:29 ` [Qemu-arm] [Qemu-devel] " Igor Mammedov
2017-04-25 14:48 ` Andrew Jones
2017-04-25 15:07 ` Igor Mammedov
2017-03-22 13:32 ` [Qemu-devel] [PATCH for-2.10 06/23] spapr: add node-id property to sPAPR core Igor Mammedov
2017-03-28 4:23 ` [Qemu-arm] " David Gibson
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 07/23] pc: add node-id property to CPU Igor Mammedov
2017-04-12 21:02 ` [Qemu-arm] [Qemu-devel] " Eduardo Habkost
2017-04-19 11:14 ` Igor Mammedov
2017-04-26 12:21 ` [Qemu-arm] " Eduardo Habkost
2017-04-27 13:14 ` Igor Mammedov
2017-04-27 16:32 ` Eduardo Habkost
2017-04-27 17:25 ` Igor Mammedov
2017-04-27 17:32 ` Eduardo Habkost
2017-05-02 4:27 ` David Gibson
2017-05-02 8:28 ` Igor Mammedov
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 08/23] virt-arm: " Igor Mammedov
2017-04-25 17:16 ` [Qemu-arm] [Qemu-devel] " Andrew Jones
2017-04-26 10:47 ` Igor Mammedov
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 09/23] numa: add check that board supports cpu_index to node mapping Igor Mammedov
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 10/23] numa: mirror cpu to node mapping in MachineState::possible_cpus Igor Mammedov
2017-03-28 4:44 ` David Gibson
2017-04-12 21:15 ` [Qemu-arm] [Qemu-devel] " Eduardo Habkost
2017-04-19 9:52 ` Igor Mammedov
2017-04-26 11:04 ` [Qemu-arm] " Eduardo Habkost
2017-04-13 13:58 ` Eduardo Habkost
2017-04-19 9:31 ` Igor Mammedov
2017-04-26 11:02 ` Eduardo Habkost
2017-03-22 13:32 ` [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-28 4:46 ` [Qemu-arm] " David Gibson
2017-03-22 13:32 ` [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 13:32 ` [Qemu-arm] [PATCH for-2.10 13/23] spapr: " Igor Mammedov
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 14/23] virt-arm: " Igor Mammedov
2017-04-25 17:06 ` [Qemu-arm] [Qemu-devel] " Andrew Jones
2017-04-26 10:54 ` Igor Mammedov
2017-04-26 11:27 ` Andrew Jones
2017-04-27 13:24 ` Igor Mammedov
2017-03-22 13:32 ` Igor Mammedov [this message]
2017-03-23 13:19 ` [Qemu-arm] [PATCH for-2.10 15/23] QMP: include CpuInstanceProperties into query_cpus output output Eric Blake
2017-03-24 12:20 ` [Qemu-arm] [Qemu-devel] " Igor Mammedov
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 16/23] tests: numa: add case for QMP command query-cpus Igor Mammedov
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 17/23] numa: remove no longer used numa_get_node_for_cpu() Igor Mammedov
2017-03-28 4:54 ` David Gibson
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 18/23] numa: remove no longer need numa_post_machine_init() Igor Mammedov
2017-03-28 4:55 ` David Gibson
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 19/23] machine: call machine init from wrapper Igor Mammedov
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 20/23] numa: use possible_cpus for not mapped CPUs check Igor Mammedov
2017-03-28 5:13 ` David Gibson
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 21/23] numa: remove node_cpu bitmaps as they are no longer used Igor Mammedov
2017-03-28 5:13 ` David Gibson
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 22/23] numa: add '-numa cpu, ...' option for property based node mapping Igor Mammedov
2017-03-23 13:23 ` Eric Blake
2017-03-24 13:29 ` [Qemu-arm] [Qemu-devel] " Igor Mammedov
2017-03-28 5:16 ` [Qemu-arm] " David Gibson
2017-03-28 11:09 ` Igor Mammedov
2017-03-29 2:27 ` David Gibson
2017-03-29 12:08 ` Igor Mammedov
2017-04-03 4:40 ` David Gibson
2017-03-22 13:32 ` [Qemu-arm] [PATCH for-2.10 23/23] tests: check -numa node, cpu=props_list usecase Igor Mammedov
2017-04-12 20:18 ` [Qemu-arm] [Qemu-devel] [PATCH for-2.10 00/23] numa: add '-numa cpu' option Eduardo Habkost
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1490189568-167621-16-git-send-email-imammedo@redhat.com \
--to=imammedo@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=drjones@redhat.com \
--cc=eblake@redhat.com \
--cc=ehabkost@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=zhaoshenglong@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).