From: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org
Cc: qemu-s390x@nongnu.org, lcapitulino@redhat.com,
ehabkost@redhat.com, pbonzini@redhat.com,
crosthwaite.peter@gmail.com, dgilbert@redhat.com,
rth@twiddle.net, cohuck@redhat.com, borntraeger@de.ibm.com,
agraf@suse.de, david@redhat.com, eblake@redhat.com,
armbru@redhat.com, berrange@redhat.com
Subject: [Qemu-devel] [PATCH 0/3] add query-cpu-fast and related s390 changes
Date: Mon, 12 Feb 2018 13:14:29 +0100 [thread overview]
Message-ID: <1518437672-7724-1-git-send-email-mihajlov@linux.vnet.ibm.com> (raw)
This series consolidates patches around a performance issue
caused by the usage of QMP query-cpus.
A performance issue was found in an OpenStack environment, where
ceilometer was collecting domain statistics with libvirt. The domain
statistics reported by libvirt include the vCPU halted state, which
in turn is retrieved with QMP query-cpus.
This causes two issues:
1. Performance: on most architectures query-cpus needs to issue a KVM ioctl
to find out whether a vCPU was halted. This is not the case for s390
but query-cpus is always causing the vCPU to exit the VM.
2. Semantics: on x86 and other architectures, halted is a highly transient
state, which is likely to have already changed shortly after the state
information has been retrieved. This is not the case for s390, where
halted is an indication that the vCPU is stopped, meaning its not
available to the guest operating system until it has been restarted.
The following patches help to alleviate the issues:
Patch 1/3:
Adds architecture specific data to the QMP CpuInfo type, exposing
the existing s390 cpu-state in QMP. The cpu-state is a representation
more adequate than the ambiguous 'halted' condition.
Changes since original v2:
- fixed cpu-state usage in hw/intc/s390_flic.c, necessary because
master was updated in the meantime
- removed superfluous newline while printing cpu-state
Patch 2/3:
Adds a new QMP function query-cpus-fast, which will only retrieve
vCPU information that can be obtained without interrupting the
vCPUs of a running VM. It introduces a new return type CpuInfoFast
with the subset of fields meeting this condition. Specifically, the
halted state is not part of CpuInfoFast. QMP clients like libvirt
are encouraged to switch to the new API for vCPU information.
Changes since original v2:
- dropped optional halted state from CpuInfoFast
Patch 3/3:
Adds the s390-specific cpu state to CpuInfoFast, allowing management
apps to find out whether a vCPU is in the stopped state. This extension
leads to a partial duplication of field definitions from CpuInfo
to CpuInfoFast. This should be tolerable if CpuInfo is deprecated and
eventually removed.
Luiz Capitulino (1):
qmp: add query-cpus-fast
Viktor Mihajlovski (2):
qmp: expose s390-specific CPU info
qmp: add architecture specific cpu data for query-cpus-fast
cpus.c | 54 ++++++++++++++++++++
hmp-commands-info.hx | 14 ++++++
hmp.c | 33 +++++++++++++
hmp.h | 1 +
hw/intc/s390_flic.c | 4 +-
hw/s390x/s390-virtio-ccw.c | 2 +-
qapi-schema.json | 121 ++++++++++++++++++++++++++++++++++++++++++++-
target/s390x/cpu.c | 24 ++++-----
target/s390x/cpu.h | 7 +--
target/s390x/kvm.c | 8 +--
target/s390x/sigp.c | 38 +++++++-------
11 files changed, 262 insertions(+), 44 deletions(-)
--
1.9.1
next reply other threads:[~2018-02-12 12:14 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-12 12:14 Viktor Mihajlovski [this message]
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
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=1518437672-7724-1-git-send-email-mihajlov@linux.vnet.ibm.com \
--to=mihajlov@linux.vnet.ibm.com \
--cc=agraf@suse.de \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.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=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 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).