qemu/qapi
Paolo Bonzini cf7405bc02 qmp: add filtering of statistics by name
Allow retrieving only a subset of statistics.  This can be useful
for example in order to plot a subset of the statistics many times
a second: KVM publishes ~40 statistics for each vCPU on x86; retrieving
and serializing all of them would be useless.

Another use will be in HMP in the following patch; implementing the
filter in the backend is easy enough that it was deemed okay to make
this a public interface.

Example:

{ "execute": "query-stats",
  "arguments": {
    "target": "vcpu",
    "vcpus": [ "/machine/unattached/device[2]",
               "/machine/unattached/device[4]" ],
    "providers": [
      { "provider": "kvm",
        "names": [ "l1d_flush", "exits" ] } } }

{ "return": {
    "vcpus": [
      { "path": "/machine/unattached/device[2]"
        "providers": [
          { "provider": "kvm",
            "stats": [ { "name": "l1d_flush", "value": 41213 },
                       { "name": "exits", "value": 74291 } ] } ] },
      { "path": "/machine/unattached/device[4]"
        "providers": [
          { "provider": "kvm",
            "stats": [ { "name": "l1d_flush", "value": 16132 },
                       { "name": "exits", "value": 57922 } ] } ] } ] } }

Extracted from a patch by Mark Kanda.

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2022-06-14 16:50:30 +02:00
..
acpi.json qapi: fix example of ACPI_DEVICE_OST event 2022-03-31 12:35:59 +02:00
audio.json qapi: Drop unnecessary empty lines outside of comments 2022-05-16 07:22:28 +02:00
authz.json qapi/qom: Add ObjectOptions for authz-* 2021-03-19 10:17:13 +01:00
block-core.json qapi: Stop using whitespace for alignment in comments 2022-05-16 07:26:25 +02:00
block-export.json qapi: Drop unnecessary whitespace in comments 2022-05-16 07:22:28 +02:00
block.json qapi: Stop using whitespace for alignment in comments 2022-05-16 07:26:25 +02:00
char.json qapi: Stop using whitespace for alignment in comments 2022-05-16 07:26:25 +02:00
common.json qapi: Drop unnecessary empty lines in comments 2022-05-16 07:22:28 +02:00
compat.json qapi: Belatedly adjust limitations documentation 2022-02-28 11:39:35 +01:00
control.json qapi: Stop using whitespace for alignment in comments 2022-05-16 07:26:25 +02:00
crypto.json qapi: crypto-akcipher: Introduce akcipher types to qapi 2022-05-26 11:41:42 +01:00
dump.json qapi: Drop unnecessary whitespace in comments 2022-05-16 07:22:28 +02:00
error.json
introspect.json qapi: Add feature flags to enum members 2021-10-27 17:18:55 +02:00
job.json qapi: Drop unnecessary empty lines outside of comments 2022-05-16 07:22:28 +02:00
machine-target.json target/loongarch: Implement qmp_query_cpu_definitions() 2022-06-06 18:09:03 +00:00
machine.json hw/cxl: Make the CXL fixed memory window setup a machine parameter. 2022-06-09 19:32:49 -04:00
meson.build qmp: Support for querying stats 2022-06-14 16:50:29 +02:00
migration.json Migration pull 2022-05-16 2022-05-16 12:03:09 -07:00
misc-target.json qapi: Drop unnecessary whitespace in comments 2022-05-16 07:22:28 +02:00
misc.json qapi: Drop unnecessary whitespace in comments 2022-05-16 07:22:28 +02:00
net.json net/vmnet: add vmnet backends to qapi/net 2022-05-17 16:48:23 +08:00
opts-visitor.c qapi, qemu-options: make all parsing visitors parse boolean options the same 2020-11-04 12:00:40 -05:00
pci.json qapi: Normalize version references x.y.0 to just x.y 2020-12-10 17:16:44 +01:00
pragma.json qapi/pragma: Tidy up comments 2022-05-16 07:31:26 +02:00
qapi-clone-visitor.c
qapi-dealloc-visitor.c
qapi-forward-visitor.c qapi: remove needless include 2022-03-22 14:46:18 +04:00
qapi-schema.json qmp: Support for querying stats 2022-06-14 16:50:29 +02:00
qapi-type-helpers.c monitor: introduce HumanReadableText and HMP support 2021-11-02 15:55:13 +00:00
qapi-util.c qapi: Fix stale reference to scripts/qapi.py in a comment 2022-02-28 11:39:35 +01:00
qapi-visit-core.c qapi: Factor out compat_policy_input_ok() 2021-10-29 21:27:20 +02:00
qdev.json softmmu: fix device deletion events with -device JSON syntax 2022-01-14 12:03:16 +01:00
qmp-dispatch.c qapi: remove needless include 2022-03-22 14:46:17 +04:00
qmp-event.c Replace qemu_gettimeofday() with g_get_real_time() 2022-04-06 10:50:37 +02:00
qmp-registry.c qapi: Generalize command policy checking 2021-10-29 18:24:46 +02:00
qobject-input-visitor.c include: add qemu/keyval.h 2022-04-21 17:03:51 +04:00
qobject-output-visitor.c qapi: Extend -compat to set policy for unstable interfaces 2021-10-29 21:28:01 +02:00
qom.json util/event-loop-base: Introduce options to set the thread pool size 2022-05-09 10:43:23 +01:00
rdma.json
replay.json qapi: Drop unnecessary empty lines in comments 2022-05-16 07:22:28 +02:00
rocker.json
run-state.json qapi: Drop unnecessary whitespace in comments 2022-05-16 07:22:28 +02:00
sockets.json qapi: Stop using whitespace for alignment in comments 2022-05-16 07:26:25 +02:00
stats.json qmp: add filtering of statistics by name 2022-06-14 16:50:30 +02:00
string-input-visitor.c qapi, qemu-options: make all parsing visitors parse boolean options the same 2020-11-04 12:00:40 -05:00
string-output-visitor.c qapi: remove needless include 2022-03-22 14:46:18 +04:00
tpm.json qapi: Convert simple union TpmTypeOptions to flat one 2021-09-27 08:22:25 +02:00
trace-events qapi: Generalize struct member policy checking 2021-10-29 18:23:09 +02:00
trace.h
trace.json qapi: fix example of trace-event-get-state command 2022-04-05 12:30:45 +02:00
transaction.json qapi: deprecate drive-backup 2021-11-09 18:21:19 +01:00
ui.json ui: Switch "-display sdl" to use the QAPI parser 2022-06-03 08:03:28 +02:00
yank.json Introduce yank feature 2021-01-13 10:21:17 +01:00