All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCHv2 0/3] add query-cpu-fast and related s390 changes
@ 2018-02-13 17:18 Viktor Mihajlovski
  2018-02-13 17:18 ` [Qemu-devel] [PATCHv2 1/3] qmp: expose s390-specific CPU info Viktor Mihajlovski
                   ` (3 more replies)
  0 siblings, 4 replies; 20+ messages in thread
From: Viktor Mihajlovski @ 2018-02-13 17:18 UTC (permalink / raw)
  To: qemu-devel
  Cc: agraf, ehabkost, armbru, cohuck, david, dgilbert, borntraeger,
	qemu-s390x, pbonzini, rth, eblake

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.

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.

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.

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 (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                      |  28 +++++++++++
 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, 257 insertions(+), 44 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2018-02-14 20:01 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-13 17:18 [Qemu-devel] [PATCHv2 0/3] add query-cpu-fast and related s390 changes Viktor Mihajlovski
2018-02-13 17:18 ` [Qemu-devel] [PATCHv2 1/3] qmp: expose s390-specific CPU info Viktor Mihajlovski
2018-02-14  9:30   ` Christian Borntraeger
2018-02-14  9:46   ` David Hildenbrand
2018-02-13 17:18 ` [Qemu-devel] [PATCHv2 2/3] qmp: add query-cpus-fast Viktor Mihajlovski
2018-02-14 10:11   ` Cornelia Huck
2018-02-14 19:46   ` Eric Blake
2018-02-13 17:18 ` [Qemu-devel] [PATCHv2 3/3] qmp: add architecture specific cpu data for query-cpus-fast Viktor Mihajlovski
2018-02-14 10:15   ` Cornelia Huck
2018-02-14 15:15     ` Eric Blake
2018-02-14 15:27       ` Cornelia Huck
2018-02-14 15:50         ` Viktor Mihajlovski
2018-02-14 16:07           ` Eric Blake
2018-02-14 19:56   ` Eric Blake
2018-02-14 10:57 ` [Qemu-devel] [PATCHv2 0/3] add query-cpu-fast and related s390 changes Cornelia Huck
2018-02-14 14:00   ` Viktor Mihajlovski
2018-02-14 15:49     ` Dr. David Alan Gilbert
2018-02-14 15:16   ` Eric Blake
2018-02-14 15:26     ` Cornelia Huck
2018-02-14 20:01     ` Eric Blake

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.