qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Cornelia Huck <cohuck@redhat.com>
To: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
Cc: qemu-devel@nongnu.org, agraf@suse.de, ehabkost@redhat.com,
	armbru@redhat.com, david@redhat.com, dgilbert@redhat.com,
	borntraeger@de.ibm.com, qemu-s390x@nongnu.org,
	pbonzini@redhat.com, rth@twiddle.net, eblake@redhat.com
Subject: Re: [Qemu-devel] [PATCHv5 0/5] add query-cpu-fast and related s390 changes
Date: Mon, 19 Feb 2018 16:01:18 +0100	[thread overview]
Message-ID: <20180219160118.02f81264.cohuck@redhat.com> (raw)
In-Reply-To: <1518797321-28356-1-git-send-email-mihajlov@linux.vnet.ibm.com>

On Fri, 16 Feb 2018 17:08:36 +0100
Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com> wrote:

> v5 synopsis: Split out HMP changes from Patch 2 into Patch 5. Please
>    	     re-review, as I've removed the a-b/r-b from Patch 2
> 	     as well.

Series looks good to me. I'd be happy to take it through the s390 tree
with some a-bs/r-bs for patches 2 and 5, but have given some r-bs as
well in case someone else wants to take it.

> 
> 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/5:
>   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.
> 
> Patch 2/5:
>   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.
> 
> Patch 3/5:
>   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.
> 
> Patch 4/5:
>   Starts the deprecation of query-cpus.
> 
> Patch 5/5 (NEW):
>   Changes HMP 'info cpus' to use query-cpus-fast. Was part of 2/5
>   initially.
> 
> Series v4 -> v5:
> Overall: Updated r-b's and moved HMP changes into a seperate patch.
> 
> Patch 1/5:
>   o Updated commit message to clarify why no HMP change
> 
> Patch 2/5:
>   o Split out HMP changes
>   o Removed r-b cohuck, a-b eblake
> 
> Series v3 -> v4:
> Overall: Instead of adding a new HMP 'info cpus_fast', changed
> 	 'info cpus' to use query-cpus-fast directly.
> 
> Patch 1/4:
>   o Don't report s390-specific data in HMP 'info cpus'
> 
> Patch 2/4:
>   o Change HMP 'info cpus' to use query-cpus-fast and
>     to return only basic information (no arch-specific data)
>   o Drop HMP 'info cpus_fast'
>   o Fixed typo in commit message
> 
> Patch 3/4:
>   o Drop HMP-related changes
> 
> Patch 4/4:
>   o Drop HMP-related changes
> 
> Series v2 -> v3:
> Overall: Added r-b's and a-b's.
> 
> Patch 2/4:
>   o Fixed commit message with respect to the halted field
>     disposition.
>   o Fixed grammar in qapi-schema documentation.
> 
> Patch 3/4:
>   o Use CpuInfoS390 type for both query-cpus and query-cpus-fast per
>     Eric Blake's comment.
>   o Dropped 'duplication blurb' from commit message as it doesn't
>     provide relevant information other than query-cpus should be
>     deprecated, which is done in the next patch now.
> 
> Series v1 -> v2:
> Patch 2/3:
>   o Changed formatting of hmp info cpus_fast to match that of
>     info cpus. This makes it easier for clients to switch to
>     the fast call.
> 
> Patch 3/3:
>   o Same formatting change for info cpus_fast as in 2/3, only
>     for s390-specific cpu state.
> 
> Luiz Capitulino (1):
>   qmp: add query-cpus-fast
> 
> Viktor Mihajlovski (4):
>   qmp: expose s390-specific CPU info
>   qmp: add architecture specific cpu data for query-cpus-fast
>   qemu-doc: deprecate query-cpus
>   hmp: change hmp_info_cpus to use query-cpus-fast
> 
>  cpus.c                     |  54 +++++++++++++++++++++
>  hmp.c                      |  41 +++-------------
>  hw/intc/s390_flic.c        |   4 +-
>  hw/s390x/s390-virtio-ccw.c |   2 +-
>  monitor.c                  |  13 +++--
>  qapi-schema.json           | 115 ++++++++++++++++++++++++++++++++++++++++++++-
>  qemu-doc.texi              |   4 ++
>  target/s390x/cpu.c         |  24 +++++-----
>  target/s390x/cpu.h         |   7 +--
>  target/s390x/kvm.c         |   8 ++--
>  target/s390x/sigp.c        |  38 +++++++--------
>  11 files changed, 228 insertions(+), 82 deletions(-)
> 

  parent reply	other threads:[~2018-02-19 15:01 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-16 16:08 [Qemu-devel] [PATCHv5 0/5] add query-cpu-fast and related s390 changes Viktor Mihajlovski
2018-02-16 16:08 ` [Qemu-devel] [PATCHv5 1/5] qmp: expose s390-specific CPU info Viktor Mihajlovski
2018-02-19 14:54   ` Cornelia Huck
2018-02-16 16:08 ` [Qemu-devel] [PATCHv5 2/5] qmp: add query-cpus-fast Viktor Mihajlovski
2018-02-19 14:56   ` Cornelia Huck
2018-02-19 16:54   ` Eric Blake
2018-02-16 16:08 ` [Qemu-devel] [PATCHv5 3/5] qmp: add architecture specific cpu data for query-cpus-fast Viktor Mihajlovski
2018-02-16 16:08 ` [Qemu-devel] [PATCHv5 4/5] qemu-doc: deprecate query-cpus Viktor Mihajlovski
2018-02-19 14:57   ` Cornelia Huck
2018-02-27 13:41     ` Viktor Mihajlovski
2018-02-27 19:06       ` Cornelia Huck
2018-03-02 10:36         ` Cornelia Huck
2018-02-16 16:08 ` [Qemu-devel] [PATCHv5 5/5] hmp: change hmp_info_cpus to use query-cpus-fast Viktor Mihajlovski
2018-02-19 14:59   ` Cornelia Huck
2018-02-19 16:57   ` Eric Blake
2018-02-27 19:40   ` Dr. David Alan Gilbert
2018-02-19 15:01 ` Cornelia Huck [this message]
2018-02-20 12:23 ` [Qemu-devel] [PATCHv5 0/5] add query-cpu-fast and related s390 changes Cornelia Huck

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=20180219160118.02f81264.cohuck@redhat.com \
    --to=cohuck@redhat.com \
    --cc=agraf@suse.de \
    --cc=armbru@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=david@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=eblake@redhat.com \
    --cc=ehabkost@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 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).