From: Cornelia Huck <cohuck@redhat.com>
To: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
Cc: qemu-devel@nongnu.org, qemu-s390x@nongnu.org,
lcapitulino@redhat.com, ehabkost@redhat.com, pbonzini@redhat.com,
crosthwaite.peter@gmail.com, dgilbert@redhat.com,
rth@twiddle.net, borntraeger@de.ibm.com, agraf@suse.de,
david@redhat.com, eblake@redhat.com, armbru@redhat.com,
berrange@redhat.com
Subject: Re: [Qemu-devel] [PATCH 3/3] qmp: add architecture specific cpu data for query-cpus-fast
Date: Mon, 12 Feb 2018 17:23:32 +0100 [thread overview]
Message-ID: <20180212172332.6d5c3232.cohuck@redhat.com> (raw)
In-Reply-To: <1518437672-7724-4-git-send-email-mihajlov@linux.vnet.ibm.com>
On Mon, 12 Feb 2018 13:14:32 +0100
Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com> wrote:
> 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}
> ]
>
> Currently there's a certain amount of duplication between
> the definitions of CpuInfo and CpuInfoFast, both in the
> base and variable areas, since there are data fields common
> to the slow and fast variants.
>
> A suggestion was made on the mailing list to enhance the QAPI
> code generation to support two layers of unions. This would
> allow to specify the common fields once and avoid the duplication
> in the leaf unions.
>
> On the other hand, the slow query-cpus should be deprecated
> along with the slow CpuInfo type and eventually be removed.
> Assuming that new architectures will not be added at high
> rates, we could live with the duplication for the time being.
>
> Signed-off-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
> ---
> cpus.c | 10 ++++++++++
> hmp.c | 8 ++++++++
> qapi-schema.json | 35 +++++++++++++++++++++++++++++------
> 3 files changed, 47 insertions(+), 6 deletions(-)
>
> diff --git a/cpus.c b/cpus.c
> index 6df6660..af67826 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;
You should be able to omit the s390_cpu variable by using
env = &S390_CPU(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 {
As you mentioned in the patch description, the duplication is a bit
awkward. I'll let the QAPI experts judge that; otherwise, this looks
fine to me.
next prev parent reply other threads:[~2018-02-12 16:23 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-12 12:14 [Qemu-devel] [PATCH 0/3] add query-cpu-fast and related s390 changes Viktor Mihajlovski
2018-02-12 12:14 ` [Qemu-devel] [PATCH 1/3] qmp: expose s390-specific CPU info Viktor Mihajlovski
2018-02-12 15:52 ` Cornelia Huck
2018-02-12 16:20 ` Viktor Mihajlovski
2018-02-12 18:03 ` Luiz Capitulino
2018-02-13 11:16 ` [Qemu-devel] [qemu-s390x] " David Hildenbrand
2018-02-13 12:20 ` Viktor Mihajlovski
2018-02-13 15:10 ` Eric Blake
2018-02-12 20:30 ` [Qemu-devel] " David Hildenbrand
2018-02-12 12:14 ` [Qemu-devel] [PATCH 2/3] qmp: add query-cpus-fast Viktor Mihajlovski
2018-02-12 16:06 ` Cornelia Huck
2018-02-12 16:50 ` Dr. David Alan Gilbert
2018-02-13 15:14 ` Viktor Mihajlovski
2018-02-12 20:35 ` David Hildenbrand
2018-02-12 12:14 ` [Qemu-devel] [PATCH 3/3] qmp: add architecture specific cpu data for query-cpus-fast Viktor Mihajlovski
2018-02-12 16:23 ` Cornelia Huck [this message]
2018-02-13 16:12 ` Viktor Mihajlovski
2018-02-13 16:17 ` Cornelia Huck
2018-02-12 18:15 ` Luiz Capitulino
2018-02-13 12:30 ` Viktor Mihajlovski
2018-02-13 13:41 ` Luiz Capitulino
2018-02-12 15:38 ` [Qemu-devel] [PATCH 0/3] add query-cpu-fast and related s390 changes Cornelia Huck
2018-02-12 16:26 ` Viktor Mihajlovski
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=20180212172332.6d5c3232.cohuck@redhat.com \
--to=cohuck@redhat.com \
--cc=agraf@suse.de \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=crosthwaite.peter@gmail.com \
--cc=david@redhat.com \
--cc=dgilbert@redhat.com \
--cc=eblake@redhat.com \
--cc=ehabkost@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=mihajlov@linux.vnet.ibm.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=rth@twiddle.net \
/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 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.