[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 11/18] QMP: include CpuInstanceProperties int
From: |
David Gibson |
Subject: |
Re: [Qemu-devel] [PATCH v3 11/18] QMP: include CpuInstanceProperties into query_cpus output output |
Date: |
Thu, 11 May 2017 14:39:30 +1000 |
User-agent: |
Mutt/1.8.0 (2017-02-23) |
On Wed, May 10, 2017 at 01:29:55PM +0200, Igor Mammedov wrote:
> 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>
Reviewed-by: David Gibson <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',
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature
- [Qemu-devel] [PATCH v3 01/18] numa: move source of default CPUs to NUMA node mapping into boards, (continued)
- [Qemu-devel] [PATCH v3 01/18] numa: move source of default CPUs to NUMA node mapping into boards, Igor Mammedov, 2017/05/10
- [Qemu-devel] [PATCH v3 05/18] numa: add check that board supports cpu_index to node mapping, Igor Mammedov, 2017/05/10
- [Qemu-devel] [PATCH v3 06/18] numa: mirror cpu to node mapping in MachineState::possible_cpus, Igor Mammedov, 2017/05/10
- [Qemu-devel] [PATCH v3 04/18] virt-arm: add node-id property to CPU, Igor Mammedov, 2017/05/10
- [Qemu-devel] [PATCH v3 07/18] numa: do default mapping based on possible_cpus instead of node_cpu bitmaps, Igor Mammedov, 2017/05/10
- [Qemu-devel] [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-devel] [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-devel] [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-devel] [PATCH v3 11/18] QMP: include CpuInstanceProperties into query_cpus output output, Igor Mammedov, 2017/05/10
- Re: [Qemu-devel] [PATCH v3 11/18] QMP: include CpuInstanceProperties into query_cpus output output,
David Gibson <=
- [Qemu-devel] [PATCH v3 12/18] tests: numa: add case for QMP command query-cpus, Igor Mammedov, 2017/05/10
- [Qemu-devel] [PATCH v3 13/18] numa: remove no longer need numa_post_machine_init(), Igor Mammedov, 2017/05/10
- [Qemu-devel] [PATCH v3 14/18] machine: call machine init from wrapper, Igor Mammedov, 2017/05/10
- [Qemu-devel] [PATCH v3 15/18] numa: use possible_cpus for not mapped CPUs check, Igor Mammedov, 2017/05/10
- [Qemu-devel] [PATCH v3 16/18] numa: remove node_cpu bitmaps as they are no longer used, Igor Mammedov, 2017/05/10
- [Qemu-devel] [PATCH v3 17/18] numa: add '-numa cpu, ...' option for property based node mapping, Igor Mammedov, 2017/05/10
- [Qemu-devel] [PATCH v3 18/18] tests: check -numa node, cpu=props_list usecase, Igor Mammedov, 2017/05/10
- Re: [Qemu-devel] [PATCH v3 00/18] numa: add '-numa cpu' option, Eduardo Habkost, 2017/05/11