* [Qemu-devel] [PATCH v3 0/5] qapi: introduce the SysEmuTarget enumeration
@ 2018-04-27 19:28 Laszlo Ersek
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 1/5] qapi: fill in CpuInfoFast.arch in query-cpus-fast Laszlo Ersek
` (5 more replies)
0 siblings, 6 replies; 14+ messages in thread
From: Laszlo Ersek @ 2018-04-27 19:28 UTC (permalink / raw)
To: qemu-devel
Cc: Daniel P. Berrange, Cornelia Huck, Eric Blake, Markus Armbruster,
Viktor VM Mihajlovski, qemu-stable
This is version 3 of the set posted earlier at
http://mid.mail-archive.com/20180426183404.3756-1-lersek@redhat.com
This version seeks to address the v2 feedback. Changes are noted per
patch.
The following firmware schema / interop docs patch remains dependent on
this series, without any changes to the former:
[Qemu-devel] [qemu RFC v3 3/3] qapi: add "firmware.json"
http://mid.mail-archive.com/20180420231246.23130-4-lersek@redhat.com
Cc: "Daniel P. Berrange" <berrange@redhat.com>
Cc: Cornelia Huck <cohuck@redhat.com>
Cc: Eric Blake <eblake@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Cc: Viktor VM Mihajlovski <mihajlov@linux.vnet.ibm.com>
Cc: qemu-stable@nongnu.org
Thanks
Laszlo
Laszlo Ersek (5):
qapi: fill in CpuInfoFast.arch in query-cpus-fast
qapi: add SysEmuTarget to "common.json"
qapi: change the type of TargetInfo.arch from string to enum
SysEmuTarget
qapi: discriminate CpuInfoFast on SysEmuTarget, not CpuInfoArch
qapi: deprecate CpuInfoFast.arch
qapi/common.json | 23 ++++++++++++++++
qapi/misc.json | 68 ++++++++++++++++++++++++++++++++++------------
arch_init.c | 4 ++-
cpus.c | 73 +++++++++++++++++++++++++++++++++++++++++++-------
qemu-doc.texi | 5 ++++
scripts/qapi/common.py | 2 +-
6 files changed, 146 insertions(+), 29 deletions(-)
--
2.14.1.3.gb7cf6e02401b
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH v3 1/5] qapi: fill in CpuInfoFast.arch in query-cpus-fast
2018-04-27 19:28 [Qemu-devel] [PATCH v3 0/5] qapi: introduce the SysEmuTarget enumeration Laszlo Ersek
@ 2018-04-27 19:28 ` Laszlo Ersek
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 2/5] qapi: add SysEmuTarget to "common.json" Laszlo Ersek
` (4 subsequent siblings)
5 siblings, 0 replies; 14+ messages in thread
From: Laszlo Ersek @ 2018-04-27 19:28 UTC (permalink / raw)
To: qemu-devel
Cc: Cornelia Huck, Eric Blake, Markus Armbruster,
Viktor VM Mihajlovski, qemu-stable
* Commit ca230ff33f89 added the @arch field to @CpuInfoFast, but it failed
to set the new field in qmp_query_cpus_fast(), when TARGET_S390X was not
defined. The updated @query-cpus-fast example in "qapi-schema.json"
showed "arch":"x86" only because qmp_query_cpus_fast() calls g_malloc0()
to allocate @CpuInfoFast, and the CPU_INFO_ARCH_X86 enum constant is
generated with value 0.
All @arch values other than @s390 implied the @CpuInfoOther sub-struct
for @CpuInfoFast -- at the time of writing the patch --, thus no fields
other than @arch needed to be set when TARGET_S390X was not defined. Set
@arch now, by copying the corresponding assignments from
qmp_query_cpus().
* Commit 25fa194b7b11 added the @riscv enum constant to @CpuInfoArch (used
in both @CpuInfo and @CpuInfoFast -- the return types of the @query-cpus
and @query-cpus-fast commands, respectively), and assigned, in both
return structures, the @CpuInfoRISCV sub-structure to the new enum
value.
However, qmp_query_cpus_fast() would not populate either the @arch field
or the @CpuInfoRISCV sub-structure, when TARGET_RISCV was defined; only
qmp_query_cpus() would.
Assign @CpuInfoOther to the @riscv enum constant in @CpuInfoFast, and
populate only the @arch field in qmp_query_cpus_fast(). Getting CPU
state without interrupting KVM is an exceptional thing that only S390X
does currently. Quoting Cornelia Huck <cohuck@redhat.com>, "s390x is
exceptional in that it has state in QEMU that is actually interesting
for upper layers and can be retrieved without performance penalty". See
also
<https://www.redhat.com/archives/libvir-list/2018-February/msg00121.html>.
Cc: Cornelia Huck <cohuck@redhat.com>
Cc: Eric Blake <eblake@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Cc: Viktor VM Mihajlovski <mihajlov@linux.vnet.ibm.com>
Cc: qemu-stable@nongnu.org
Fixes: ca230ff33f89bf7102cbfbc2328716da6750aaed
Fixes: 25fa194b7b11901561532e435beb83d046899f7a
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
---
Notes:
PATCHv3:
- pick up Cornelia's and Markus's R-b's
- no changes
PATCHv2:
- squash v1 patches 1/6 and 2/6 [Eric, Markus, Cornelia]
- fix "added added" typo in the commit message [Eric]
- update commit message wrt. S390X particulars [Cornelia, Markus,
Viktor]
- pick up Eric's R-b (synthesized from his R-b's for v1 1/6 & 2/6)
- don't pick up Cornelia's R-b (only given for v1 1/6)
- update the CC list
PATCHv1:
- new patch
qapi/misc.json | 2 +-
cpus.c | 16 +++++++++++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/qapi/misc.json b/qapi/misc.json
index 5636f4a14997..104d013adba6 100644
--- a/qapi/misc.json
+++ b/qapi/misc.json
@@ -565,23 +565,23 @@
{ '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',
- 'riscv': 'CpuInfoRISCV',
+ 'riscv': 'CpuInfoOther',
'other': 'CpuInfoOther' } }
##
# @query-cpus-fast:
#
# Returns information about all virtual CPUs. This command does not
# incur a performance penalty and should be used in production
# instead of query-cpus.
#
# Returns: list of @CpuInfoFast
#
diff --git a/cpus.c b/cpus.c
index 38eba8bff334..60563a6d54ec 100644
--- a/cpus.c
+++ b/cpus.c
@@ -2210,27 +2210,41 @@ CpuInfoFastList *qmp_query_cpus_fast(Error **errp)
info->value->qom_path = object_get_canonical_path(OBJECT(cpu));
info->value->thread_id = cpu->thread_id;
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;
}
-#if defined(TARGET_S390X)
+#if defined(TARGET_I386)
+ info->value->arch = CPU_INFO_ARCH_X86;
+#elif defined(TARGET_PPC)
+ info->value->arch = CPU_INFO_ARCH_PPC;
+#elif defined(TARGET_SPARC)
+ info->value->arch = CPU_INFO_ARCH_SPARC;
+#elif defined(TARGET_MIPS)
+ info->value->arch = CPU_INFO_ARCH_MIPS;
+#elif defined(TARGET_TRICORE)
+ info->value->arch = CPU_INFO_ARCH_TRICORE;
+#elif 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;
+#elif defined(TARGET_RISCV)
+ info->value->arch = CPU_INFO_ARCH_RISCV;
+#else
+ info->value->arch = CPU_INFO_ARCH_OTHER;
#endif
if (!cur_item) {
head = cur_item = info;
} else {
cur_item->next = info;
cur_item = info;
}
}
return head;
}
--
2.14.1.3.gb7cf6e02401b
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH v3 2/5] qapi: add SysEmuTarget to "common.json"
2018-04-27 19:28 [Qemu-devel] [PATCH v3 0/5] qapi: introduce the SysEmuTarget enumeration Laszlo Ersek
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 1/5] qapi: fill in CpuInfoFast.arch in query-cpus-fast Laszlo Ersek
@ 2018-04-27 19:28 ` Laszlo Ersek
2018-04-27 19:53 ` Eric Blake
2018-05-02 7:55 ` Markus Armbruster
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 3/5] qapi: change the type of TargetInfo.arch from string to enum SysEmuTarget Laszlo Ersek
` (3 subsequent siblings)
5 siblings, 2 replies; 14+ messages in thread
From: Laszlo Ersek @ 2018-04-27 19:28 UTC (permalink / raw)
To: qemu-devel; +Cc: Daniel P. Berrange, Eric Blake, Markus Armbruster
We'll soon need an enumeration type that lists all the softmmu targets
that QEMU (the project) supports. Introduce @SysEmuTarget to
"common.json".
The enum constant @x86_64 doesn't match the QAPI convention of preferring
hyphen ("-") over underscore ("_"). This is intentional; the @SysEmuTarget
constants are supposed to produce QEMU executable names when stringified
and appended to the "qemu-system-" prefix. Put differently, the
replacement text of the TARGET_NAME preprocessor macro must be possible to
look up in the list of (stringified) enum constants.
Like other enum types, @SysEmuTarget too can be used for discriminator
fields in unions. For the @i386 constant, a C-language union member called
"i386" would be generated. On mingw build hosts, "i386" is a macro
however. Add "i386" to "polluted_words" at once.
Cc: "Daniel P. Berrange" <berrange@redhat.com>
Cc: Eric Blake <eblake@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
Notes:
PATCHv3:
- copy the suggested (shorter) Notes: wrt. underscore use in @x86_64 to
the schema, and move the original (longer) schema Notes: to the commit
message [Eric]
- no R-b's picked up due to the above change
PATCHv2:
- document the use of the underscore in @x86_64 in both the commit
message and in the schema [Eric, Dan]
- extend "polluted_words" with "i386" [Eric]
- drop previous R-b's
- update the CC list
PATCHv1:
- pick up R-b's from Markus and Kashyap, no changes
RFCv3:
- The patch is new in this version. [Dan, Markus]
- The original idea was to call the new enum @Target; however, @Target
generates exactly the TARGET_AARCH64, TARGET_ALPHA, TARGET_ARM, ...
enumeration constants that conflict with the poisoned preprocessing
macros of the same names. Hence @SysEmuTarget -- it's more accurate
anyway, since we want it to stand for system emulation targets.
- Also, we discussed defining the new type in either "common.json" or
"misc.json". "misc.json" turned out to be a problem: "firmware.json"
would then include "misc.json" for the new type's sake, but that
inclusion would become the first appearance of "misc.json" -- within
"firmware.json". That messed up the generated documentation. By adding
the new type to "common.json", "misc.json" (see the 2nd patch) and
"firmware.json" (see the 3rd patch) can both consume the new type
without problems.
qapi/common.json | 23 +++++++++++++++++++++++
scripts/qapi/common.py | 2 +-
2 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/qapi/common.json b/qapi/common.json
index d9b14dd429f3..c811d0498457 100644
--- a/qapi/common.json
+++ b/qapi/common.json
@@ -118,11 +118,34 @@
#
# @bar3: PCI BAR3 is used for the feature
#
# @bar4: PCI BAR4 is used for the feature
#
# @bar5: PCI BAR5 is used for the feature
#
# Since: 2.12
##
{ 'enum': 'OffAutoPCIBAR',
'data': [ 'off', 'auto', 'bar0', 'bar1', 'bar2', 'bar3', 'bar4', 'bar5' ] }
+
+##
+# @SysEmuTarget:
+#
+# The comprehensive enumeration of QEMU system emulation ("softmmu")
+# targets. Run "./configure --help" in the project root directory, and
+# look for the *-softmmu targets near the "--target-list" option. The
+# individual target constants are not documented here, for the time
+# being.
+#
+# Notes: The resulting QMP strings can be appended to the "qemu-system-"
+# prefix to produce the corresponding QEMU executable name. This
+# is true even for "qemu-system-x86_64".
+#
+# Since: 2.13
+##
+{ 'enum' : 'SysEmuTarget',
+ 'data' : [ 'aarch64', 'alpha', 'arm', 'cris', 'hppa', 'i386', 'lm32',
+ 'm68k', 'microblaze', 'microblazeel', 'mips', 'mips64',
+ 'mips64el', 'mipsel', 'moxie', 'nios2', 'or1k', 'ppc',
+ 'ppc64', 'ppcemb', 'riscv32', 'riscv64', 's390x', 'sh4',
+ 'sh4eb', 'sparc', 'sparc64', 'tricore', 'unicore32',
+ 'x86_64', 'xtensa', 'xtensaeb' ] }
diff --git a/scripts/qapi/common.py b/scripts/qapi/common.py
index 3e14bc41f2c0..a032cec37509 100644
--- a/scripts/qapi/common.py
+++ b/scripts/qapi/common.py
@@ -1814,23 +1814,23 @@ def c_name(name, protect=True):
# C++ ISO/IEC 14882:2003 2.11
cpp_words = set(['bool', 'catch', 'class', 'const_cast', 'delete',
'dynamic_cast', 'explicit', 'false', 'friend', 'mutable',
'namespace', 'new', 'operator', 'private', 'protected',
'public', 'reinterpret_cast', 'static_cast', 'template',
'this', 'throw', 'true', 'try', 'typeid', 'typename',
'using', 'virtual', 'wchar_t',
# alternative representations
'and', 'and_eq', 'bitand', 'bitor', 'compl', 'not',
'not_eq', 'or', 'or_eq', 'xor', 'xor_eq'])
# namespace pollution:
- polluted_words = set(['unix', 'errno', 'mips', 'sparc'])
+ polluted_words = set(['unix', 'errno', 'mips', 'sparc', 'i386'])
name = name.translate(c_name_trans)
if protect and (name in c89_words | c99_words | c11_words | gcc_words
| cpp_words | polluted_words):
return 'q_' + name
return name
eatspace = '\033EATSPACE.'
pointer_suffix = ' *' + eatspace
def genindent(count):
--
2.14.1.3.gb7cf6e02401b
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH v3 3/5] qapi: change the type of TargetInfo.arch from string to enum SysEmuTarget
2018-04-27 19:28 [Qemu-devel] [PATCH v3 0/5] qapi: introduce the SysEmuTarget enumeration Laszlo Ersek
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 1/5] qapi: fill in CpuInfoFast.arch in query-cpus-fast Laszlo Ersek
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 2/5] qapi: add SysEmuTarget to "common.json" Laszlo Ersek
@ 2018-04-27 19:28 ` Laszlo Ersek
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 4/5] qapi: discriminate CpuInfoFast on SysEmuTarget, not CpuInfoArch Laszlo Ersek
` (2 subsequent siblings)
5 siblings, 0 replies; 14+ messages in thread
From: Laszlo Ersek @ 2018-04-27 19:28 UTC (permalink / raw)
To: qemu-devel; +Cc: Daniel P. Berrange, Eric Blake, Markus Armbruster
Now that we have @SysEmuTarget, it makes sense to restrict
@TargetInfo.@arch to valid sysemu targets at the schema level.
Cc: "Daniel P. Berrange" <berrange@redhat.com>
Cc: Eric Blake <eblake@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
Notes:
PATCHv3:
- pick up Eric's R-b
- no change
PATCHv2:
- drop naive code comment in qmp_query_target() [Markus]
- pick up Markus's R-b
- update CC list
PATCHv1:
- qmp_query_target(): pass (-1) as fallback value [Markus]
- qmp_query_target(): catch lookup error with error_abort [Markus]
RFCv3:
- The patch is new in this version. [Markus]
qapi/misc.json | 6 ++++--
arch_init.c | 4 +++-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/qapi/misc.json b/qapi/misc.json
index 104d013adba6..460866cf542f 100644
--- a/qapi/misc.json
+++ b/qapi/misc.json
@@ -1,18 +1,20 @@
# -*- Mode: Python -*-
#
##
# = Miscellanea
##
+{ 'include': 'common.json' }
+
##
# @qmp_capabilities:
#
# Enable QMP capabilities.
#
# Arguments:
#
# @enable: An optional list of QMPCapability values to enable. The
# client must not enable any capability that is not
# mentioned in the QMP greeting message. If the field is not
# provided, it means no QMP capabilities will be enabled.
@@ -2441,28 +2443,28 @@
# ]
# }
#
##
{ 'command': 'query-fdsets', 'returns': ['FdsetInfo'] }
##
# @TargetInfo:
#
# Information describing the QEMU target.
#
-# @arch: the target architecture (eg "x86_64", "i386", etc)
+# @arch: the target architecture
#
# Since: 1.2.0
##
{ 'struct': 'TargetInfo',
- 'data': { 'arch': 'str' } }
+ 'data': { 'arch': 'SysEmuTarget' } }
##
# @query-target:
#
# Return information about the target for this QEMU
#
# Returns: TargetInfo
#
# Since: 1.2.0
##
{ 'command': 'query-target', 'returns': 'TargetInfo' }
diff --git a/arch_init.c b/arch_init.c
index 6ee07478bd11..9597218ceda3 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -21,22 +21,23 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "cpu.h"
#include "sysemu/sysemu.h"
#include "sysemu/arch_init.h"
#include "hw/pci/pci.h"
#include "hw/audio/soundhw.h"
#include "qapi/qapi-commands-misc.h"
+#include "qapi/error.h"
#include "qemu/config-file.h"
#include "qemu/error-report.h"
#include "hw/acpi/acpi.h"
#include "qemu/help_option.h"
#ifdef TARGET_SPARC
int graphic_width = 1024;
int graphic_height = 768;
int graphic_depth = 8;
#else
int graphic_width = 800;
@@ -104,15 +105,16 @@ int xen_available(void)
return 1;
#else
return 0;
#endif
}
TargetInfo *qmp_query_target(Error **errp)
{
TargetInfo *info = g_malloc0(sizeof(*info));
- info->arch = g_strdup(TARGET_NAME);
+ info->arch = qapi_enum_parse(&SysEmuTarget_lookup, TARGET_NAME, -1,
+ &error_abort);
return info;
}
--
2.14.1.3.gb7cf6e02401b
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH v3 4/5] qapi: discriminate CpuInfoFast on SysEmuTarget, not CpuInfoArch
2018-04-27 19:28 [Qemu-devel] [PATCH v3 0/5] qapi: introduce the SysEmuTarget enumeration Laszlo Ersek
` (2 preceding siblings ...)
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 3/5] qapi: change the type of TargetInfo.arch from string to enum SysEmuTarget Laszlo Ersek
@ 2018-04-27 19:28 ` Laszlo Ersek
2018-05-02 7:57 ` Markus Armbruster
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 5/5] qapi: deprecate CpuInfoFast.arch Laszlo Ersek
2018-05-02 8:31 ` [Qemu-devel] [PATCH v3 0/5] qapi: introduce the SysEmuTarget enumeration Markus Armbruster
5 siblings, 1 reply; 14+ messages in thread
From: Laszlo Ersek @ 2018-04-27 19:28 UTC (permalink / raw)
To: qemu-devel; +Cc: Daniel P. Berrange, Eric Blake, Markus Armbruster
Add a new field @target (of type @SysEmuTarget) to the output of the
@query-cpus-fast command, which provides more information about the
emulation target than the field @arch (of type @CpuInfoArch). Make @target
the new discriminator for the @CpuInfoFast return structure. Keep @arch
for compatibility.
Cc: "Daniel P. Berrange" <berrange@redhat.com>
Cc: Eric Blake <eblake@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
Notes:
PATCHv3:
- remove superfluous empty comment line addition after @target
- pick up Eric's R-b
- skip Markus's R-b due to the next patch
PATCHv2:
- drop patch v1 5/6 with the CpuInfoCommon refactoring / extraction, as
@CpuInfo / @query-cpus are deprecated [Eric, Markus]
- for the same reason, add @target to @CpuInfoFast / @query-cpus-fast
only [Eric, Markus]
- Can't set @arch compatibly from a QAPI enum lookup of the proposed
TARGET_BASE_ARCH macro, because TARGET_BASE_ARCH=s390x is not
identical to the @s390 @CpuInfoArch constant -- see more at
<http://mid.mail-archive.com/f0c9c7ca-3dcf-4f74-9812-5dea5b6376cd@redhat.com>.
Keep sysemu_target_to_cpuinfo_arch() instead. [Markus, Eric]
- update CC list
PATCHv1:
- new patch
qapi/misc.json | 62 +++++++++++++++++++++++++++++++----------
cpus.c | 87 ++++++++++++++++++++++++++++++++++++++++++----------------
2 files changed, 110 insertions(+), 39 deletions(-)
diff --git a/qapi/misc.json b/qapi/misc.json
index 460866cf542f..fa4eec7b6b63 100644
--- a/qapi/misc.json
+++ b/qapi/misc.json
@@ -550,41 +550,71 @@
# Information about a virtual CPU
#
# @cpu-index: index of the virtual CPU
#
# @qom-path: path to the CPU object in the QOM tree
#
# @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
#
-# @arch: architecture of the cpu, which determines which additional fields
-# will be listed
+# @arch: base architecture of the cpu
+#
+# @target: the QEMU system emulation target, which is more specific than
+# @arch and determines which additional fields will be listed
+# (since 2.13)
#
# Since: 2.12
#
##
-{ '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',
- 'riscv': 'CpuInfoOther',
- 'other': 'CpuInfoOther' } }
+{ 'union' : 'CpuInfoFast',
+ 'base' : { 'cpu-index' : 'int',
+ 'qom-path' : 'str',
+ 'thread-id' : 'int',
+ '*props' : 'CpuInstanceProperties',
+ 'arch' : 'CpuInfoArch',
+ 'target' : 'SysEmuTarget' },
+ 'discriminator' : 'target',
+ 'data' : { 'aarch64' : 'CpuInfoOther',
+ 'alpha' : 'CpuInfoOther',
+ 'arm' : 'CpuInfoOther',
+ 'cris' : 'CpuInfoOther',
+ 'hppa' : 'CpuInfoOther',
+ 'i386' : 'CpuInfoOther',
+ 'lm32' : 'CpuInfoOther',
+ 'm68k' : 'CpuInfoOther',
+ 'microblaze' : 'CpuInfoOther',
+ 'microblazeel' : 'CpuInfoOther',
+ 'mips' : 'CpuInfoOther',
+ 'mips64' : 'CpuInfoOther',
+ 'mips64el' : 'CpuInfoOther',
+ 'mipsel' : 'CpuInfoOther',
+ 'moxie' : 'CpuInfoOther',
+ 'nios2' : 'CpuInfoOther',
+ 'or1k' : 'CpuInfoOther',
+ 'ppc' : 'CpuInfoOther',
+ 'ppc64' : 'CpuInfoOther',
+ 'ppcemb' : 'CpuInfoOther',
+ 'riscv32' : 'CpuInfoOther',
+ 'riscv64' : 'CpuInfoOther',
+ 's390x' : 'CpuInfoS390',
+ 'sh4' : 'CpuInfoOther',
+ 'sh4eb' : 'CpuInfoOther',
+ 'sparc' : 'CpuInfoOther',
+ 'sparc64' : 'CpuInfoOther',
+ 'tricore' : 'CpuInfoOther',
+ 'unicore32' : 'CpuInfoOther',
+ 'x86_64' : 'CpuInfoOther',
+ 'xtensa' : 'CpuInfoOther',
+ 'xtensaeb' : 'CpuInfoOther' } }
##
# @query-cpus-fast:
#
# Returns information about all virtual CPUs. This command does not
# incur a performance penalty and should be used in production
# instead of query-cpus.
#
# Returns: list of @CpuInfoFast
#
# Since: 2.12
@@ -594,33 +624,35 @@
# -> { "execute": "query-cpus-fast" }
# <- { "return": [
# {
# "thread-id": 25627,
# "props": {
# "core-id": 0,
# "thread-id": 0,
# "socket-id": 0
# },
# "qom-path": "/machine/unattached/device[0]",
# "arch":"x86",
+# "target":"x86_64",
# "cpu-index": 0
# },
# {
# "thread-id": 25628,
# "props": {
# "core-id": 0,
# "thread-id": 0,
# "socket-id": 1
# },
# "qom-path": "/machine/unattached/device[2]",
# "arch":"x86",
+# "target":"x86_64",
# "cpu-index": 1
# }
# ]
# }
##
{ 'command': 'query-cpus-fast', 'returns': [ 'CpuInfoFast' ] }
##
# @IOThreadInfo:
#
# Information about an iothread
diff --git a/cpus.c b/cpus.c
index 60563a6d54ec..5bcd3ecf3848 100644
--- a/cpus.c
+++ b/cpus.c
@@ -2179,73 +2179,112 @@ CpuInfoList *qmp_query_cpus(Error **errp)
if (!cur_item) {
head = cur_item = info;
} else {
cur_item->next = info;
cur_item = info;
}
}
return head;
}
+static CpuInfoArch sysemu_target_to_cpuinfo_arch(SysEmuTarget target)
+{
+ /*
+ * The @SysEmuTarget -> @CpuInfoArch mapping below is based on the
+ * TARGET_ARCH -> TARGET_BASE_ARCH mapping in the "configure" script.
+ */
+ switch (target) {
+ case SYS_EMU_TARGET_I386:
+ case SYS_EMU_TARGET_X86_64:
+ return CPU_INFO_ARCH_X86;
+
+ case SYS_EMU_TARGET_PPC:
+ case SYS_EMU_TARGET_PPCEMB:
+ case SYS_EMU_TARGET_PPC64:
+ return CPU_INFO_ARCH_PPC;
+
+ case SYS_EMU_TARGET_SPARC:
+ case SYS_EMU_TARGET_SPARC64:
+ return CPU_INFO_ARCH_SPARC;
+
+ case SYS_EMU_TARGET_MIPS:
+ case SYS_EMU_TARGET_MIPSEL:
+ case SYS_EMU_TARGET_MIPS64:
+ case SYS_EMU_TARGET_MIPS64EL:
+ return CPU_INFO_ARCH_MIPS;
+
+ case SYS_EMU_TARGET_TRICORE:
+ return CPU_INFO_ARCH_TRICORE;
+
+ case SYS_EMU_TARGET_S390X:
+ return CPU_INFO_ARCH_S390;
+
+ case SYS_EMU_TARGET_RISCV32:
+ case SYS_EMU_TARGET_RISCV64:
+ return CPU_INFO_ARCH_RISCV;
+
+ default:
+ return CPU_INFO_ARCH_OTHER;
+ }
+}
+
+static void cpustate_to_cpuinfo_s390(CpuInfoS390 *info, const CPUState *cpu)
+{
+#ifdef TARGET_S390X
+ S390CPU *s390_cpu = S390_CPU(cpu);
+ CPUS390XState *env = &s390_cpu->env;
+
+ info->cpu_state = env->cpu_state;
+#else
+ abort();
+#endif
+}
+
/*
* fast means: we NEVER interrupt vCPU threads to retrieve
* information from KVM.
*/
CpuInfoFastList *qmp_query_cpus_fast(Error **errp)
{
MachineState *ms = MACHINE(qdev_get_machine());
MachineClass *mc = MACHINE_GET_CLASS(ms);
CpuInfoFastList *head = NULL, *cur_item = NULL;
+ SysEmuTarget target = qapi_enum_parse(&SysEmuTarget_lookup, TARGET_NAME,
+ -1, &error_abort);
CPUState *cpu;
-#if defined(TARGET_S390X)
- S390CPU *s390_cpu;
- CPUS390XState *env;
-#endif
CPU_FOREACH(cpu) {
CpuInfoFastList *info = g_malloc0(sizeof(*info));
info->value = g_malloc0(sizeof(*info->value));
info->value->cpu_index = cpu->cpu_index;
info->value->qom_path = object_get_canonical_path(OBJECT(cpu));
info->value->thread_id = cpu->thread_id;
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;
}
-#if defined(TARGET_I386)
- info->value->arch = CPU_INFO_ARCH_X86;
-#elif defined(TARGET_PPC)
- info->value->arch = CPU_INFO_ARCH_PPC;
-#elif defined(TARGET_SPARC)
- info->value->arch = CPU_INFO_ARCH_SPARC;
-#elif defined(TARGET_MIPS)
- info->value->arch = CPU_INFO_ARCH_MIPS;
-#elif defined(TARGET_TRICORE)
- info->value->arch = CPU_INFO_ARCH_TRICORE;
-#elif 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;
-#elif defined(TARGET_RISCV)
- info->value->arch = CPU_INFO_ARCH_RISCV;
-#else
- info->value->arch = CPU_INFO_ARCH_OTHER;
-#endif
+ info->value->arch = sysemu_target_to_cpuinfo_arch(target);
+ info->value->target = target;
+ if (target == SYS_EMU_TARGET_S390X) {
+ cpustate_to_cpuinfo_s390(&info->value->u.s390x, cpu);
+ } else {
+ /* do nothing for @CpuInfoOther */
+ }
+
if (!cur_item) {
head = cur_item = info;
} else {
cur_item->next = info;
cur_item = info;
}
}
return head;
}
--
2.14.1.3.gb7cf6e02401b
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH v3 5/5] qapi: deprecate CpuInfoFast.arch
2018-04-27 19:28 [Qemu-devel] [PATCH v3 0/5] qapi: introduce the SysEmuTarget enumeration Laszlo Ersek
` (3 preceding siblings ...)
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 4/5] qapi: discriminate CpuInfoFast on SysEmuTarget, not CpuInfoArch Laszlo Ersek
@ 2018-04-27 19:28 ` Laszlo Ersek
2018-04-27 19:55 ` Eric Blake
2018-05-02 7:56 ` Markus Armbruster
2018-05-02 8:31 ` [Qemu-devel] [PATCH v3 0/5] qapi: introduce the SysEmuTarget enumeration Markus Armbruster
5 siblings, 2 replies; 14+ messages in thread
From: Laszlo Ersek @ 2018-04-27 19:28 UTC (permalink / raw)
To: qemu-devel; +Cc: Daniel P. Berrange, Eric Blake, Markus Armbruster
The TARGET_BASE_ARCH values from "configure" don't all map to the
@CpuInfoArch enum constants; in particular "s390x" from the former does
not match @s390 in the latter. Clients are known to rely on the @s390
constant specifically, so we can't change it silently. Instead, deprecate
the @CpuInfoFast.@arch member (in favor of @CpuInfoFast.@target) using the
regular deprecation process.
(No deprecation reminder is added to sysemu_target_to_cpuinfo_arch(): once
@CpuInfoFast.@arch is removed, the assignment expression that calls
sysemu_target_to_cpuinfo_arch() from qmp_query_cpus_fast() will have to
disappear; in turn the static function left without callers will also
break the build, thus it'll have to go.)
Cc: "Daniel P. Berrange" <berrange@redhat.com>
Cc: Eric Blake <eblake@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
Notes:
PATCHv3:
- new patch [Markus, Eric]
qapi/misc.json | 8 ++++----
qemu-doc.texi | 5 +++++
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/qapi/misc.json b/qapi/misc.json
index fa4eec7b6b63..f5988cc0b52d 100644
--- a/qapi/misc.json
+++ b/qapi/misc.json
@@ -550,27 +550,27 @@
# Information about a virtual CPU
#
# @cpu-index: index of the virtual CPU
#
# @qom-path: path to the CPU object in the QOM tree
#
# @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
#
-# @arch: base architecture of the cpu
+# @arch: base architecture of the cpu; deprecated since 2.13.0 in favor
+# of @target
#
-# @target: the QEMU system emulation target, which is more specific than
-# @arch and determines which additional fields will be listed
-# (since 2.13)
+# @target: the QEMU system emulation target, which determines which
+# additional fields will be listed (since 2.13)
#
# Since: 2.12
#
##
{ 'union' : 'CpuInfoFast',
'base' : { 'cpu-index' : 'int',
'qom-path' : 'str',
'thread-id' : 'int',
'*props' : 'CpuInstanceProperties',
'arch' : 'CpuInfoArch',
'target' : 'SysEmuTarget' },
diff --git a/qemu-doc.texi b/qemu-doc.texi
index 5813d276156a..0ed0f19e6bab 100644
--- a/qemu-doc.texi
+++ b/qemu-doc.texi
@@ -2941,22 +2941,27 @@ by the ``convert -l snapshot_param'' argument instead.
@section QEMU Machine Protocol (QMP) commands
@subsection block-dirty-bitmap-add "autoload" parameter (since 2.12.0)
"autoload" parameter is now ignored. All bitmaps are automatically loaded
from qcow2 images.
@subsection query-cpus (since 2.12.0)
The ``query-cpus'' command is replaced by the ``query-cpus-fast'' command.
+@subsection query-cpus-fast "arch" output member (since 2.13.0)
+
+The ``arch'' output member of the ``query-cpus-fast'' command is
+replaced by the ``target'' output member.
+
@section System emulator devices
@subsection ivshmem (since 2.6.0)
The ``ivshmem'' device type is replaced by either the ``ivshmem-plain''
or ``ivshmem-doorbell`` device types.
@subsection Page size support < 4k for embedded PowerPC CPUs (since 2.12.0)
qemu-system-ppcemb will be removed. qemu-system-ppc (or qemu-system-ppc64)
should be used instead. That means that embedded 4xx PowerPC CPUs will not
--
2.14.1.3.gb7cf6e02401b
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH v3 2/5] qapi: add SysEmuTarget to "common.json"
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 2/5] qapi: add SysEmuTarget to "common.json" Laszlo Ersek
@ 2018-04-27 19:53 ` Eric Blake
2018-05-02 7:55 ` Markus Armbruster
1 sibling, 0 replies; 14+ messages in thread
From: Eric Blake @ 2018-04-27 19:53 UTC (permalink / raw)
To: Laszlo Ersek, qemu-devel; +Cc: Daniel P. Berrange, Markus Armbruster
[-- Attachment #1: Type: text/plain, Size: 1540 bytes --]
On 04/27/2018 02:28 PM, Laszlo Ersek wrote:
> We'll soon need an enumeration type that lists all the softmmu targets
> that QEMU (the project) supports. Introduce @SysEmuTarget to
> "common.json".
>
> The enum constant @x86_64 doesn't match the QAPI convention of preferring
> hyphen ("-") over underscore ("_"). This is intentional; the @SysEmuTarget
> constants are supposed to produce QEMU executable names when stringified
> and appended to the "qemu-system-" prefix. Put differently, the
> replacement text of the TARGET_NAME preprocessor macro must be possible to
> look up in the list of (stringified) enum constants.
>
> Like other enum types, @SysEmuTarget too can be used for discriminator
> fields in unions. For the @i386 constant, a C-language union member called
> "i386" would be generated. On mingw build hosts, "i386" is a macro
> however. Add "i386" to "polluted_words" at once.
>
> Cc: "Daniel P. Berrange" <berrange@redhat.com>
> Cc: Eric Blake <eblake@redhat.com>
> Cc: Markus Armbruster <armbru@redhat.com>
> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> ---
>
> Notes:
> PATCHv3:
>
> - copy the suggested (shorter) Notes: wrt. underscore use in @x86_64 to
> the schema, and move the original (longer) schema Notes: to the commit
> message [Eric]
Thanks; that looks better.
Reviewed-by: Eric Blake <eblake@redhat.com>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 619 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH v3 5/5] qapi: deprecate CpuInfoFast.arch
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 5/5] qapi: deprecate CpuInfoFast.arch Laszlo Ersek
@ 2018-04-27 19:55 ` Eric Blake
2018-05-02 7:56 ` Markus Armbruster
1 sibling, 0 replies; 14+ messages in thread
From: Eric Blake @ 2018-04-27 19:55 UTC (permalink / raw)
To: Laszlo Ersek, qemu-devel; +Cc: Daniel P. Berrange, Markus Armbruster
[-- Attachment #1: Type: text/plain, Size: 1172 bytes --]
On 04/27/2018 02:28 PM, Laszlo Ersek wrote:
> The TARGET_BASE_ARCH values from "configure" don't all map to the
> @CpuInfoArch enum constants; in particular "s390x" from the former does
> not match @s390 in the latter. Clients are known to rely on the @s390
> constant specifically, so we can't change it silently. Instead, deprecate
> the @CpuInfoFast.@arch member (in favor of @CpuInfoFast.@target) using the
> regular deprecation process.
>
> (No deprecation reminder is added to sysemu_target_to_cpuinfo_arch(): once
> @CpuInfoFast.@arch is removed, the assignment expression that calls
> sysemu_target_to_cpuinfo_arch() from qmp_query_cpus_fast() will have to
> disappear; in turn the static function left without callers will also
> break the build, thus it'll have to go.)
>
> Cc: "Daniel P. Berrange" <berrange@redhat.com>
> Cc: Eric Blake <eblake@redhat.com>
> Cc: Markus Armbruster <armbru@redhat.com>
> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> ---
>
Reviewed-by: Eric Blake <eblake@redhat.com>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 619 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH v3 2/5] qapi: add SysEmuTarget to "common.json"
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 2/5] qapi: add SysEmuTarget to "common.json" Laszlo Ersek
2018-04-27 19:53 ` Eric Blake
@ 2018-05-02 7:55 ` Markus Armbruster
1 sibling, 0 replies; 14+ messages in thread
From: Markus Armbruster @ 2018-05-02 7:55 UTC (permalink / raw)
To: Laszlo Ersek; +Cc: qemu-devel
Laszlo Ersek <lersek@redhat.com> writes:
> We'll soon need an enumeration type that lists all the softmmu targets
> that QEMU (the project) supports. Introduce @SysEmuTarget to
> "common.json".
>
> The enum constant @x86_64 doesn't match the QAPI convention of preferring
> hyphen ("-") over underscore ("_"). This is intentional; the @SysEmuTarget
> constants are supposed to produce QEMU executable names when stringified
> and appended to the "qemu-system-" prefix. Put differently, the
> replacement text of the TARGET_NAME preprocessor macro must be possible to
> look up in the list of (stringified) enum constants.
>
> Like other enum types, @SysEmuTarget too can be used for discriminator
> fields in unions. For the @i386 constant, a C-language union member called
> "i386" would be generated. On mingw build hosts, "i386" is a macro
> however. Add "i386" to "polluted_words" at once.
>
> Cc: "Daniel P. Berrange" <berrange@redhat.com>
> Cc: Eric Blake <eblake@redhat.com>
> Cc: Markus Armbruster <armbru@redhat.com>
> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH v3 5/5] qapi: deprecate CpuInfoFast.arch
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 5/5] qapi: deprecate CpuInfoFast.arch Laszlo Ersek
2018-04-27 19:55 ` Eric Blake
@ 2018-05-02 7:56 ` Markus Armbruster
1 sibling, 0 replies; 14+ messages in thread
From: Markus Armbruster @ 2018-05-02 7:56 UTC (permalink / raw)
To: Laszlo Ersek; +Cc: qemu-devel
Laszlo Ersek <lersek@redhat.com> writes:
> The TARGET_BASE_ARCH values from "configure" don't all map to the
> @CpuInfoArch enum constants; in particular "s390x" from the former does
> not match @s390 in the latter. Clients are known to rely on the @s390
> constant specifically, so we can't change it silently. Instead, deprecate
> the @CpuInfoFast.@arch member (in favor of @CpuInfoFast.@target) using the
> regular deprecation process.
>
> (No deprecation reminder is added to sysemu_target_to_cpuinfo_arch(): once
> @CpuInfoFast.@arch is removed, the assignment expression that calls
> sysemu_target_to_cpuinfo_arch() from qmp_query_cpus_fast() will have to
> disappear; in turn the static function left without callers will also
> break the build, thus it'll have to go.)
>
> Cc: "Daniel P. Berrange" <berrange@redhat.com>
> Cc: Eric Blake <eblake@redhat.com>
> Cc: Markus Armbruster <armbru@redhat.com>
> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH v3 4/5] qapi: discriminate CpuInfoFast on SysEmuTarget, not CpuInfoArch
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 4/5] qapi: discriminate CpuInfoFast on SysEmuTarget, not CpuInfoArch Laszlo Ersek
@ 2018-05-02 7:57 ` Markus Armbruster
0 siblings, 0 replies; 14+ messages in thread
From: Markus Armbruster @ 2018-05-02 7:57 UTC (permalink / raw)
To: Laszlo Ersek; +Cc: qemu-devel
Laszlo Ersek <lersek@redhat.com> writes:
> Add a new field @target (of type @SysEmuTarget) to the output of the
> @query-cpus-fast command, which provides more information about the
> emulation target than the field @arch (of type @CpuInfoArch). Make @target
> the new discriminator for the @CpuInfoFast return structure. Keep @arch
> for compatibility.
>
> Cc: "Daniel P. Berrange" <berrange@redhat.com>
> Cc: Eric Blake <eblake@redhat.com>
> Cc: Markus Armbruster <armbru@redhat.com>
> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH v3 0/5] qapi: introduce the SysEmuTarget enumeration
2018-04-27 19:28 [Qemu-devel] [PATCH v3 0/5] qapi: introduce the SysEmuTarget enumeration Laszlo Ersek
` (4 preceding siblings ...)
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 5/5] qapi: deprecate CpuInfoFast.arch Laszlo Ersek
@ 2018-05-02 8:31 ` Markus Armbruster
2018-05-02 8:49 ` Laszlo Ersek
5 siblings, 1 reply; 14+ messages in thread
From: Markus Armbruster @ 2018-05-02 8:31 UTC (permalink / raw)
To: Laszlo Ersek
Cc: qemu-devel, Cornelia Huck, qemu-stable, Viktor VM Mihajlovski
Applied to qapi-next, thanks!
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH v3 0/5] qapi: introduce the SysEmuTarget enumeration
2018-05-02 8:31 ` [Qemu-devel] [PATCH v3 0/5] qapi: introduce the SysEmuTarget enumeration Markus Armbruster
@ 2018-05-02 8:49 ` Laszlo Ersek
2018-05-02 9:40 ` Markus Armbruster
0 siblings, 1 reply; 14+ messages in thread
From: Laszlo Ersek @ 2018-05-02 8:49 UTC (permalink / raw)
To: Markus Armbruster
Cc: qemu-devel, Cornelia Huck, qemu-stable, Viktor VM Mihajlovski
On 05/02/18 10:31, Markus Armbruster wrote:
> Applied to qapi-next, thanks!
>
\o/
Thank you all for working with me through this! :)
Laszlo
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH v3 0/5] qapi: introduce the SysEmuTarget enumeration
2018-05-02 8:49 ` Laszlo Ersek
@ 2018-05-02 9:40 ` Markus Armbruster
0 siblings, 0 replies; 14+ messages in thread
From: Markus Armbruster @ 2018-05-02 9:40 UTC (permalink / raw)
To: Laszlo Ersek
Cc: Viktor VM Mihajlovski, Cornelia Huck, qemu-devel, qemu-stable
Laszlo Ersek <lersek@redhat.com> writes:
> On 05/02/18 10:31, Markus Armbruster wrote:
>> Applied to qapi-next, thanks!
>>
>
> \o/
>
> Thank you all for working with me through this! :)
Thank *you* for going the extra mile!
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2018-05-02 9:40 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-27 19:28 [Qemu-devel] [PATCH v3 0/5] qapi: introduce the SysEmuTarget enumeration Laszlo Ersek
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 1/5] qapi: fill in CpuInfoFast.arch in query-cpus-fast Laszlo Ersek
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 2/5] qapi: add SysEmuTarget to "common.json" Laszlo Ersek
2018-04-27 19:53 ` Eric Blake
2018-05-02 7:55 ` Markus Armbruster
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 3/5] qapi: change the type of TargetInfo.arch from string to enum SysEmuTarget Laszlo Ersek
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 4/5] qapi: discriminate CpuInfoFast on SysEmuTarget, not CpuInfoArch Laszlo Ersek
2018-05-02 7:57 ` Markus Armbruster
2018-04-27 19:28 ` [Qemu-devel] [PATCH v3 5/5] qapi: deprecate CpuInfoFast.arch Laszlo Ersek
2018-04-27 19:55 ` Eric Blake
2018-05-02 7:56 ` Markus Armbruster
2018-05-02 8:31 ` [Qemu-devel] [PATCH v3 0/5] qapi: introduce the SysEmuTarget enumeration Markus Armbruster
2018-05-02 8:49 ` Laszlo Ersek
2018-05-02 9:40 ` Markus Armbruster
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.