[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 21/27] qmp: add architecture specific cpu data for
From: |
Cornelia Huck |
Subject: |
[Qemu-devel] [PULL v2 21/27] qmp: add architecture specific cpu data for query-cpus-fast |
Date: |
Thu, 1 Mar 2018 14:01:55 +0100 |
From: Viktor Mihajlovski <address@hidden>
The s390 CPU state can be retrieved without interrupting the
VM execution. Extendend the CpuInfoFast union with architecture
specific data and an implementation for s390.
Return data looks like this:
[
{"thread-id":64301,"props":{"core-id":0},
"arch":"s390","cpu-state":"operating",
"qom-path":"/machine/unattached/device[0]","cpu-index":0},
{"thread-id":64302,"props":{"core-id":1},
"arch":"s390","cpu-state":"operating",
"qom-path":"/machine/unattached/device[1]","cpu-index":1}
]
Signed-off-by: Viktor Mihajlovski <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
---
cpus.c | 10 ++++++++++
qapi-schema.json | 25 ++++++++++++++++++-------
2 files changed, 28 insertions(+), 7 deletions(-)
diff --git a/cpus.c b/cpus.c
index 6df6660ccf..af678264f6 100644
--- a/cpus.c
+++ b/cpus.c
@@ -2166,6 +2166,10 @@ CpuInfoFastList *qmp_query_cpus_fast(Error **errp)
MachineClass *mc = MACHINE_GET_CLASS(ms);
CpuInfoFastList *head = NULL, *cur_item = NULL;
CPUState *cpu;
+#if defined(TARGET_S390X)
+ S390CPU *s390_cpu;
+ CPUS390XState *env;
+#endif
CPU_FOREACH(cpu) {
CpuInfoFastList *info = g_malloc0(sizeof(*info));
@@ -2183,6 +2187,12 @@ CpuInfoFastList *qmp_query_cpus_fast(Error **errp)
info->value->props = props;
}
+#if defined(TARGET_S390X)
+ s390_cpu = S390_CPU(cpu);
+ env = &s390_cpu->env;
+ info->value->arch = CPU_INFO_ARCH_S390;
+ info->value->u.s390.cpu_state = env->cpu_state;
+#endif
if (!cur_item) {
head = cur_item = info;
} else {
diff --git a/qapi-schema.json b/qapi-schema.json
index 815f072876..e6ca63f718 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -408,7 +408,7 @@
# @CpuInfoArch:
#
# An enumeration of cpu types that enable additional information during
-# @query-cpus.
+# @query-cpus and @query-cpus-fast.
#
# @s390: since 2.12
#
@@ -604,12 +604,24 @@
# @props: properties describing to which node/socket/core/thread
# virtual CPU belongs to, provided if supported by board
#
+# @arch: architecture of the cpu, which determines which additional fields
+# will be listed
+#
# Since: 2.12
#
##
-{ 'struct': 'CpuInfoFast',
- 'data': {'cpu-index': 'int', 'qom-path': 'str',
- 'thread-id': 'int', '*props': 'CpuInstanceProperties' } }
+{ 'union': 'CpuInfoFast',
+ 'base': {'cpu-index': 'int', 'qom-path': 'str',
+ 'thread-id': 'int', '*props': 'CpuInstanceProperties',
+ 'arch': 'CpuInfoArch' },
+ 'discriminator': 'arch',
+ 'data': { 'x86': 'CpuInfoOther',
+ 'sparc': 'CpuInfoOther',
+ 'ppc': 'CpuInfoOther',
+ 'mips': 'CpuInfoOther',
+ 'tricore': 'CpuInfoOther',
+ 's390': 'CpuInfoS390',
+ 'other': 'CpuInfoOther' } }
##
# @query-cpus-fast:
@@ -620,9 +632,6 @@
#
# Returns: list of @CpuInfoFast
#
-# Notes: The CPU architecture name is not returned by query-cpus-fast.
-# Use query-target to retrieve that information.
-#
# Since: 2.12
#
# Example:
@@ -637,6 +646,7 @@
# "socket-id": 0
# },
# "qom-path": "/machine/unattached/device[0]",
+# "arch":"x86",
# "cpu-index": 0
# },
# {
@@ -647,6 +657,7 @@
# "socket-id": 1
# },
# "qom-path": "/machine/unattached/device[2]",
+# "arch":"x86",
# "cpu-index": 1
# }
# ]
--
2.13.6
- [Qemu-devel] [PULL v2 10/27] s390-ccw: read user input for boot index via the SCLP console, (continued)
- [Qemu-devel] [PULL v2 10/27] s390-ccw: read user input for boot index via the SCLP console, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 11/27] s390-ccw: set cp_receive mask only when needed and consume pending service irqs, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 12/27] s390-ccw: use zipl values when no boot menu options are present, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 13/27] s390-ccw: interactive boot menu for scsi, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 16/27] s390/stattrib: Make SaveVMHandlers data static, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 15/27] s390x/cpu: expose the guest crash information, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 17/27] s390x/tcg: fix disabling/enabling DAT, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 18/27] s390x/tcg: add various alignment checks, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 19/27] qmp: expose s390-specific CPU info, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 20/27] qmp: add query-cpus-fast, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 21/27] qmp: add architecture specific cpu data for query-cpus-fast,
Cornelia Huck <=
- [Qemu-devel] [PULL v2 14/27] pc-bios/s390: Rebuild the s390x firmware images with the boot menu changes, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 22/27] qemu-doc: deprecate query-cpus, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 23/27] hmp: change hmp_info_cpus to use query-cpus-fast, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 24/27] s390x/cpumodel: document S390FeatDef.bit not applicable, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 25/27] s390x/sclp: remove memory hotplug support, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 26/27] s390x: remove s390_get_memslot_count, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 27/27] s390x/tcg: fix loading 31bit PSWs with the highest bit set, Cornelia Huck, 2018/03/01
- Re: [Qemu-devel] [PULL v2 00/27] s390x updates (and friends), Peter Maydell, 2018/03/01