18ac25c84SMarkus Armbruster# -*- Mode: Python -*- 2f7160f32SAndrea Bolognani# vim: filetype=python 38ac25c84SMarkus Armbruster# 48ac25c84SMarkus Armbruster# This work is licensed under the terms of the GNU GPL, version 2 or later. 58ac25c84SMarkus Armbruster# See the COPYING file in the top-level directory. 68ac25c84SMarkus Armbruster 78ac25c84SMarkus Armbruster## 88ac25c84SMarkus Armbruster# = Machines 98ac25c84SMarkus Armbruster## 108ac25c84SMarkus Armbruster 11913d9063SKevin Wolf{ 'include': 'common.json' } 125de1aff2SPierre Morel{ 'include': 'machine-common.json' } 13913d9063SKevin Wolf 14ffaee83bSMarkus Armbruster## 15ffaee83bSMarkus Armbruster# @SysEmuTarget: 16ffaee83bSMarkus Armbruster# 17ffaee83bSMarkus Armbruster# The comprehensive enumeration of QEMU system emulation ("softmmu") 18a937b6aaSMarkus Armbruster# targets. Run "./configure --help" in the project root directory, 19a937b6aaSMarkus Armbruster# and look for the \*-softmmu targets near the "--target-list" option. 20a937b6aaSMarkus Armbruster# The individual target constants are not documented here, for the 21a937b6aaSMarkus Armbruster# time being. 22ffaee83bSMarkus Armbruster# 23c8c35e5fSYoshinori Sato# @rx: since 5.0 24a937b6aaSMarkus Armbruster# 2542f3ff00SMichael Rolnik# @avr: since 5.1 26c8c35e5fSYoshinori Sato# 27a937b6aaSMarkus Armbruster# Notes: The resulting QMP strings can be appended to the 28a937b6aaSMarkus Armbruster# "qemu-system-" prefix to produce the corresponding QEMU 29a937b6aaSMarkus Armbruster# executable name. This is true even for "qemu-system-x86_64". 30ffaee83bSMarkus Armbruster# 31ffaee83bSMarkus Armbruster# Since: 3.0 32ffaee83bSMarkus Armbruster## 33ffaee83bSMarkus Armbruster{ 'enum' : 'SysEmuTarget', 349d49bcf6SMarkus Armbruster 'data' : [ 'aarch64', 'alpha', 'arm', 'avr', 'cris', 'hppa', 'i386', 35a8a506c3SXiaojuan Yang 'loongarch64', 'm68k', 'microblaze', 'microblazeel', 'mips', 'mips64', 366c301485SPhilippe Mathieu-Daudé 'mips64el', 'mipsel', 'or1k', 'ppc', 37c8c35e5fSYoshinori Sato 'ppc64', 'riscv32', 'riscv64', 'rx', 's390x', 'sh4', 3843692239SMarkus Armbruster 'sh4eb', 'sparc', 'sparc64', 'tricore', 39ffaee83bSMarkus Armbruster 'x86_64', 'xtensa', 'xtensaeb' ] } 408ac25c84SMarkus Armbruster 418ac25c84SMarkus Armbruster## 428ac25c84SMarkus Armbruster# @CpuS390State: 438ac25c84SMarkus Armbruster# 44a937b6aaSMarkus Armbruster# An enumeration of cpu states that can be assumed by a virtual S390 45a937b6aaSMarkus Armbruster# CPU 468ac25c84SMarkus Armbruster# 478ac25c84SMarkus Armbruster# Since: 2.12 488ac25c84SMarkus Armbruster## 498ac25c84SMarkus Armbruster{ 'enum': 'CpuS390State', 508ac25c84SMarkus Armbruster 'prefix': 'S390_CPU_STATE', 518ac25c84SMarkus Armbruster 'data': [ 'uninitialized', 'stopped', 'check-stop', 'operating', 'load' ] } 528ac25c84SMarkus Armbruster 538ac25c84SMarkus Armbruster## 548ac25c84SMarkus Armbruster# @CpuInfoS390: 558ac25c84SMarkus Armbruster# 568ac25c84SMarkus Armbruster# Additional information about a virtual S390 CPU 578ac25c84SMarkus Armbruster# 588ac25c84SMarkus Armbruster# @cpu-state: the virtual CPU's state 598ac25c84SMarkus Armbruster# 60ad2d1afcSPierre Morel# @dedicated: the virtual CPU's dedication (since 8.2) 61ad2d1afcSPierre Morel# 62ad2d1afcSPierre Morel# @entitlement: the virtual CPU's entitlement (since 8.2) 63ad2d1afcSPierre Morel# 648ac25c84SMarkus Armbruster# Since: 2.12 658ac25c84SMarkus Armbruster## 66ad2d1afcSPierre Morel{ 'struct': 'CpuInfoS390', 67ad2d1afcSPierre Morel 'data': { 'cpu-state': 'CpuS390State', 68ad2d1afcSPierre Morel '*dedicated': 'bool', 69ad2d1afcSPierre Morel '*entitlement': 'CpuS390Entitlement' } } 708ac25c84SMarkus Armbruster 718ac25c84SMarkus Armbruster## 728ac25c84SMarkus Armbruster# @CpuInfoFast: 738ac25c84SMarkus Armbruster# 748ac25c84SMarkus Armbruster# Information about a virtual CPU 758ac25c84SMarkus Armbruster# 768ac25c84SMarkus Armbruster# @cpu-index: index of the virtual CPU 778ac25c84SMarkus Armbruster# 788ac25c84SMarkus Armbruster# @qom-path: path to the CPU object in the QOM tree 798ac25c84SMarkus Armbruster# 808ac25c84SMarkus Armbruster# @thread-id: ID of the underlying host thread 818ac25c84SMarkus Armbruster# 823da4aef8SNina Schoetterl-Glausch# @props: properties associated with a virtual CPU, e.g. the socket id 838ac25c84SMarkus Armbruster# 848ac25c84SMarkus Armbruster# @target: the QEMU system emulation target, which determines which 858ac25c84SMarkus Armbruster# additional fields will be listed (since 3.0) 868ac25c84SMarkus Armbruster# 878ac25c84SMarkus Armbruster# Since: 2.12 888ac25c84SMarkus Armbruster## 898ac25c84SMarkus Armbruster{ 'union' : 'CpuInfoFast', 908ac25c84SMarkus Armbruster 'base' : { 'cpu-index' : 'int', 918ac25c84SMarkus Armbruster 'qom-path' : 'str', 928ac25c84SMarkus Armbruster 'thread-id' : 'int', 938ac25c84SMarkus Armbruster '*props' : 'CpuInstanceProperties', 948ac25c84SMarkus Armbruster 'target' : 'SysEmuTarget' }, 958ac25c84SMarkus Armbruster 'discriminator' : 'target', 968ac25c84SMarkus Armbruster 'data' : { 's390x' : 'CpuInfoS390' } } 978ac25c84SMarkus Armbruster 988ac25c84SMarkus Armbruster## 998ac25c84SMarkus Armbruster# @query-cpus-fast: 1008ac25c84SMarkus Armbruster# 1018af54b91SDaniel P. Berrangé# Returns information about all virtual CPUs. 1028ac25c84SMarkus Armbruster# 1038ac25c84SMarkus Armbruster# Returns: list of @CpuInfoFast 1048ac25c84SMarkus Armbruster# 1058ac25c84SMarkus Armbruster# Since: 2.12 1068ac25c84SMarkus Armbruster# 1078ac25c84SMarkus Armbruster# Example: 1088ac25c84SMarkus Armbruster# 1098ac25c84SMarkus Armbruster# -> { "execute": "query-cpus-fast" } 1108ac25c84SMarkus Armbruster# <- { "return": [ 1118ac25c84SMarkus Armbruster# { 1128ac25c84SMarkus Armbruster# "thread-id": 25627, 1138ac25c84SMarkus Armbruster# "props": { 1148ac25c84SMarkus Armbruster# "core-id": 0, 1158ac25c84SMarkus Armbruster# "thread-id": 0, 1168ac25c84SMarkus Armbruster# "socket-id": 0 1178ac25c84SMarkus Armbruster# }, 1188ac25c84SMarkus Armbruster# "qom-path": "/machine/unattached/device[0]", 1198ac25c84SMarkus Armbruster# "target":"x86_64", 1208ac25c84SMarkus Armbruster# "cpu-index": 0 1218ac25c84SMarkus Armbruster# }, 1228ac25c84SMarkus Armbruster# { 1238ac25c84SMarkus Armbruster# "thread-id": 25628, 1248ac25c84SMarkus Armbruster# "props": { 1258ac25c84SMarkus Armbruster# "core-id": 0, 1268ac25c84SMarkus Armbruster# "thread-id": 0, 1278ac25c84SMarkus Armbruster# "socket-id": 1 1288ac25c84SMarkus Armbruster# }, 1298ac25c84SMarkus Armbruster# "qom-path": "/machine/unattached/device[2]", 1308ac25c84SMarkus Armbruster# "target":"x86_64", 1318ac25c84SMarkus Armbruster# "cpu-index": 1 1328ac25c84SMarkus Armbruster# } 1338ac25c84SMarkus Armbruster# ] 1348ac25c84SMarkus Armbruster# } 1358ac25c84SMarkus Armbruster## 1368ac25c84SMarkus Armbruster{ 'command': 'query-cpus-fast', 'returns': [ 'CpuInfoFast' ] } 1378ac25c84SMarkus Armbruster 1388ac25c84SMarkus Armbruster## 139236e9397SMaksim Davydov# @CompatProperty: 140236e9397SMaksim Davydov# 141236e9397SMaksim Davydov# Property default values specific to a machine type, for use by 142236e9397SMaksim Davydov# scripts/compare-machine-types. 143236e9397SMaksim Davydov# 144236e9397SMaksim Davydov# @qom-type: name of the QOM type to which the default applies 145236e9397SMaksim Davydov# 146236e9397SMaksim Davydov# @property: name of its property to which the default applies 147236e9397SMaksim Davydov# 148236e9397SMaksim Davydov# @value: the default value (machine-specific default can overwrite 149236e9397SMaksim Davydov# the "default" default, to avoid this use -machine none) 150236e9397SMaksim Davydov# 151236e9397SMaksim Davydov# Since: 9.1 152236e9397SMaksim Davydov## 153236e9397SMaksim Davydov{ 'struct': 'CompatProperty', 154236e9397SMaksim Davydov 'data': { 'qom-type': 'str', 155236e9397SMaksim Davydov 'property': 'str', 156236e9397SMaksim Davydov 'value': 'str' } } 157236e9397SMaksim Davydov 158236e9397SMaksim Davydov## 1598ac25c84SMarkus Armbruster# @MachineInfo: 1608ac25c84SMarkus Armbruster# 1618ac25c84SMarkus Armbruster# Information describing a machine. 1628ac25c84SMarkus Armbruster# 1638ac25c84SMarkus Armbruster# @name: the name of the machine 1648ac25c84SMarkus Armbruster# 1658ac25c84SMarkus Armbruster# @alias: an alias for the machine name 1668ac25c84SMarkus Armbruster# 1678ac25c84SMarkus Armbruster# @is-default: whether the machine is default 1688ac25c84SMarkus Armbruster# 1698ac25c84SMarkus Armbruster# @cpu-max: maximum number of CPUs supported by the machine type 1709bc6e893SMarkus Armbruster# (since 1.5) 1718ac25c84SMarkus Armbruster# 1729bc6e893SMarkus Armbruster# @hotpluggable-cpus: cpu hotplug via -device is supported (since 2.7) 1738ac25c84SMarkus Armbruster# 174cd5ff833SIgor Mammedov# @numa-mem-supported: true if '-numa node,mem' option is supported by 175cd5ff833SIgor Mammedov# the machine type and false otherwise (since 4.1) 176cd5ff833SIgor Mammedov# 177a937b6aaSMarkus Armbruster# @deprecated: if true, the machine type is deprecated and may be 178a937b6aaSMarkus Armbruster# removed in future versions of QEMU according to the QEMU 179a937b6aaSMarkus Armbruster# deprecation policy (since 4.1) 18079974027SEduardo Habkost# 181a937b6aaSMarkus Armbruster# @default-cpu-type: default CPU model typename if none is requested 182a937b6aaSMarkus Armbruster# via the -cpu argument. (since 4.2) 18304109957SDaniel P. Berrangé# 184a937b6aaSMarkus Armbruster# @default-ram-id: the default ID of initial RAM memory backend (since 185a937b6aaSMarkus Armbruster# 5.2) 186c5566005SMichal Privoznik# 187b97f3147SPeter Krempa# @acpi: machine type supports ACPI (since 8.0) 188b97f3147SPeter Krempa# 189236e9397SMaksim Davydov# @compat-props: The machine type's compatibility properties. Only 190236e9397SMaksim Davydov# present when query-machines argument @compat-props is true. 191236e9397SMaksim Davydov# (since 9.1) 192236e9397SMaksim Davydov# 193236e9397SMaksim Davydov# Features: 194236e9397SMaksim Davydov# 195236e9397SMaksim Davydov# @unstable: Member @compat-props is experimental. 196236e9397SMaksim Davydov# 1979bc6e893SMarkus Armbruster# Since: 1.2 1988ac25c84SMarkus Armbruster## 1998ac25c84SMarkus Armbruster{ 'struct': 'MachineInfo', 2008ac25c84SMarkus Armbruster 'data': { 'name': 'str', '*alias': 'str', 2018ac25c84SMarkus Armbruster '*is-default': 'bool', 'cpu-max': 'int', 20279974027SEduardo Habkost 'hotpluggable-cpus': 'bool', 'numa-mem-supported': 'bool', 203c5566005SMichal Privoznik 'deprecated': 'bool', '*default-cpu-type': 'str', 204236e9397SMaksim Davydov '*default-ram-id': 'str', 'acpi': 'bool', 205236e9397SMaksim Davydov '*compat-props': { 'type': ['CompatProperty'], 206236e9397SMaksim Davydov 'features': ['unstable'] } } } 2078ac25c84SMarkus Armbruster 2088ac25c84SMarkus Armbruster## 2098ac25c84SMarkus Armbruster# @query-machines: 2108ac25c84SMarkus Armbruster# 2118ac25c84SMarkus Armbruster# Return a list of supported machines 2128ac25c84SMarkus Armbruster# 213236e9397SMaksim Davydov# @compat-props: if true, also return compatibility properties. 214236e9397SMaksim Davydov# (default: false) (since 9.1) 215236e9397SMaksim Davydov# 216236e9397SMaksim Davydov# Features: 217236e9397SMaksim Davydov# 218236e9397SMaksim Davydov# @unstable: Argument @compat-props is experimental. 219236e9397SMaksim Davydov# 2208ac25c84SMarkus Armbruster# Returns: a list of MachineInfo 2218ac25c84SMarkus Armbruster# 2229bc6e893SMarkus Armbruster# Since: 1.2 223236e9397SMaksim Davydov# 224236e9397SMaksim Davydov# Example: 225236e9397SMaksim Davydov# 226236e9397SMaksim Davydov# -> { "execute": "query-machines", "arguments": { "compat-props": true } } 227236e9397SMaksim Davydov# <- { "return": [ 228236e9397SMaksim Davydov# { 229236e9397SMaksim Davydov# "hotpluggable-cpus": true, 230236e9397SMaksim Davydov# "name": "pc-q35-6.2", 231236e9397SMaksim Davydov# "compat-props": [ 232236e9397SMaksim Davydov# { 233236e9397SMaksim Davydov# "qom-type": "virtio-mem", 234236e9397SMaksim Davydov# "property": "unplugged-inaccessible", 235236e9397SMaksim Davydov# "value": "off" 236236e9397SMaksim Davydov# } 237236e9397SMaksim Davydov# ], 238236e9397SMaksim Davydov# "numa-mem-supported": false, 239236e9397SMaksim Davydov# "default-cpu-type": "qemu64-x86_64-cpu", 240236e9397SMaksim Davydov# "cpu-max": 288, 241236e9397SMaksim Davydov# "deprecated": false, 242236e9397SMaksim Davydov# "default-ram-id": "pc.ram" 243236e9397SMaksim Davydov# }, 244236e9397SMaksim Davydov# ... 245236e9397SMaksim Davydov# } 2468ac25c84SMarkus Armbruster## 247236e9397SMaksim Davydov{ 'command': 'query-machines', 248236e9397SMaksim Davydov 'data': { '*compat-props': { 'type': 'bool', 249236e9397SMaksim Davydov 'features': [ 'unstable' ] } }, 250236e9397SMaksim Davydov 'returns': ['MachineInfo'] } 2518ac25c84SMarkus Armbruster 2528ac25c84SMarkus Armbruster## 2538ac25c84SMarkus Armbruster# @CurrentMachineParams: 2548ac25c84SMarkus Armbruster# 2558ac25c84SMarkus Armbruster# Information describing the running machine parameters. 2568ac25c84SMarkus Armbruster# 2578ac25c84SMarkus Armbruster# @wakeup-suspend-support: true if the machine supports wake up from 2588ac25c84SMarkus Armbruster# suspend 2598ac25c84SMarkus Armbruster# 2608ac25c84SMarkus Armbruster# Since: 4.0 2618ac25c84SMarkus Armbruster## 2628ac25c84SMarkus Armbruster{ 'struct': 'CurrentMachineParams', 2638ac25c84SMarkus Armbruster 'data': { 'wakeup-suspend-support': 'bool'} } 2648ac25c84SMarkus Armbruster 2658ac25c84SMarkus Armbruster## 2668ac25c84SMarkus Armbruster# @query-current-machine: 2678ac25c84SMarkus Armbruster# 2688ac25c84SMarkus Armbruster# Return information on the current virtual machine. 2698ac25c84SMarkus Armbruster# 2708ac25c84SMarkus Armbruster# Returns: CurrentMachineParams 2718ac25c84SMarkus Armbruster# 2728ac25c84SMarkus Armbruster# Since: 4.0 2738ac25c84SMarkus Armbruster## 2748ac25c84SMarkus Armbruster{ 'command': 'query-current-machine', 'returns': 'CurrentMachineParams' } 2758ac25c84SMarkus Armbruster 2768ac25c84SMarkus Armbruster## 277ffaee83bSMarkus Armbruster# @TargetInfo: 278ffaee83bSMarkus Armbruster# 279ffaee83bSMarkus Armbruster# Information describing the QEMU target. 280ffaee83bSMarkus Armbruster# 281ffaee83bSMarkus Armbruster# @arch: the target architecture 282ffaee83bSMarkus Armbruster# 2839bc6e893SMarkus Armbruster# Since: 1.2 284ffaee83bSMarkus Armbruster## 285ffaee83bSMarkus Armbruster{ 'struct': 'TargetInfo', 286ffaee83bSMarkus Armbruster 'data': { 'arch': 'SysEmuTarget' } } 287ffaee83bSMarkus Armbruster 288ffaee83bSMarkus Armbruster## 289ffaee83bSMarkus Armbruster# @query-target: 290ffaee83bSMarkus Armbruster# 291ffaee83bSMarkus Armbruster# Return information about the target for this QEMU 292ffaee83bSMarkus Armbruster# 293ffaee83bSMarkus Armbruster# Returns: TargetInfo 294ffaee83bSMarkus Armbruster# 2959bc6e893SMarkus Armbruster# Since: 1.2 296ffaee83bSMarkus Armbruster## 297ffaee83bSMarkus Armbruster{ 'command': 'query-target', 'returns': 'TargetInfo' } 298ffaee83bSMarkus Armbruster 299ffaee83bSMarkus Armbruster## 300f68c0147SPhilippe Mathieu-Daudé# @UuidInfo: 301f68c0147SPhilippe Mathieu-Daudé# 302f68c0147SPhilippe Mathieu-Daudé# Guest UUID information (Universally Unique Identifier). 303f68c0147SPhilippe Mathieu-Daudé# 304f68c0147SPhilippe Mathieu-Daudé# @UUID: the UUID of the guest 305f68c0147SPhilippe Mathieu-Daudé# 3069bc6e893SMarkus Armbruster# Since: 0.14 307f68c0147SPhilippe Mathieu-Daudé# 308a937b6aaSMarkus Armbruster# Notes: If no UUID was specified for the guest, a null UUID is 309a937b6aaSMarkus Armbruster# returned. 310f68c0147SPhilippe Mathieu-Daudé## 311f68c0147SPhilippe Mathieu-Daudé{ 'struct': 'UuidInfo', 'data': {'UUID': 'str'} } 312f68c0147SPhilippe Mathieu-Daudé 313f68c0147SPhilippe Mathieu-Daudé## 314f68c0147SPhilippe Mathieu-Daudé# @query-uuid: 315f68c0147SPhilippe Mathieu-Daudé# 316f68c0147SPhilippe Mathieu-Daudé# Query the guest UUID information. 317f68c0147SPhilippe Mathieu-Daudé# 318f68c0147SPhilippe Mathieu-Daudé# Returns: The @UuidInfo for the guest 319f68c0147SPhilippe Mathieu-Daudé# 3209bc6e893SMarkus Armbruster# Since: 0.14 321f68c0147SPhilippe Mathieu-Daudé# 322f68c0147SPhilippe Mathieu-Daudé# Example: 323f68c0147SPhilippe Mathieu-Daudé# 324f68c0147SPhilippe Mathieu-Daudé# -> { "execute": "query-uuid" } 325f68c0147SPhilippe Mathieu-Daudé# <- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } } 326f68c0147SPhilippe Mathieu-Daudé## 327f68c0147SPhilippe Mathieu-Daudé{ 'command': 'query-uuid', 'returns': 'UuidInfo', 'allow-preconfig': true } 328f68c0147SPhilippe Mathieu-Daudé 329f68c0147SPhilippe Mathieu-Daudé## 330db0f08dfSPhilippe Mathieu-Daudé# @GuidInfo: 331db0f08dfSPhilippe Mathieu-Daudé# 332db0f08dfSPhilippe Mathieu-Daudé# GUID information. 333db0f08dfSPhilippe Mathieu-Daudé# 334db0f08dfSPhilippe Mathieu-Daudé# @guid: the globally unique identifier 335db0f08dfSPhilippe Mathieu-Daudé# 336db0f08dfSPhilippe Mathieu-Daudé# Since: 2.9 337db0f08dfSPhilippe Mathieu-Daudé## 338db0f08dfSPhilippe Mathieu-Daudé{ 'struct': 'GuidInfo', 'data': {'guid': 'str'} } 339db0f08dfSPhilippe Mathieu-Daudé 340db0f08dfSPhilippe Mathieu-Daudé## 341db0f08dfSPhilippe Mathieu-Daudé# @query-vm-generation-id: 342db0f08dfSPhilippe Mathieu-Daudé# 343db0f08dfSPhilippe Mathieu-Daudé# Show Virtual Machine Generation ID 344db0f08dfSPhilippe Mathieu-Daudé# 345db0f08dfSPhilippe Mathieu-Daudé# Since: 2.9 346db0f08dfSPhilippe Mathieu-Daudé## 347db0f08dfSPhilippe Mathieu-Daudé{ 'command': 'query-vm-generation-id', 'returns': 'GuidInfo' } 348db0f08dfSPhilippe Mathieu-Daudé 349db0f08dfSPhilippe Mathieu-Daudé## 35090f8c0f9SPhilippe Mathieu-Daudé# @system_reset: 35190f8c0f9SPhilippe Mathieu-Daudé# 35290f8c0f9SPhilippe Mathieu-Daudé# Performs a hard reset of a guest. 35390f8c0f9SPhilippe Mathieu-Daudé# 3549bc6e893SMarkus Armbruster# Since: 0.14 35590f8c0f9SPhilippe Mathieu-Daudé# 35690f8c0f9SPhilippe Mathieu-Daudé# Example: 35790f8c0f9SPhilippe Mathieu-Daudé# 35890f8c0f9SPhilippe Mathieu-Daudé# -> { "execute": "system_reset" } 35990f8c0f9SPhilippe Mathieu-Daudé# <- { "return": {} } 36090f8c0f9SPhilippe Mathieu-Daudé## 36190f8c0f9SPhilippe Mathieu-Daudé{ 'command': 'system_reset' } 36290f8c0f9SPhilippe Mathieu-Daudé 36390f8c0f9SPhilippe Mathieu-Daudé## 36490f8c0f9SPhilippe Mathieu-Daudé# @system_powerdown: 36590f8c0f9SPhilippe Mathieu-Daudé# 36690f8c0f9SPhilippe Mathieu-Daudé# Requests that a guest perform a powerdown operation. 36790f8c0f9SPhilippe Mathieu-Daudé# 3689bc6e893SMarkus Armbruster# Since: 0.14 36990f8c0f9SPhilippe Mathieu-Daudé# 37090f8c0f9SPhilippe Mathieu-Daudé# Notes: A guest may or may not respond to this command. This command 371a937b6aaSMarkus Armbruster# returning does not indicate that a guest has accepted the 372a937b6aaSMarkus Armbruster# request or that it has shut down. Many guests will respond to 373a937b6aaSMarkus Armbruster# this command by prompting the user in some way. 3744ae65a52SAndrea Bolognani# 37590f8c0f9SPhilippe Mathieu-Daudé# Example: 37690f8c0f9SPhilippe Mathieu-Daudé# 37790f8c0f9SPhilippe Mathieu-Daudé# -> { "execute": "system_powerdown" } 37890f8c0f9SPhilippe Mathieu-Daudé# <- { "return": {} } 37990f8c0f9SPhilippe Mathieu-Daudé## 38090f8c0f9SPhilippe Mathieu-Daudé{ 'command': 'system_powerdown' } 38190f8c0f9SPhilippe Mathieu-Daudé 38290f8c0f9SPhilippe Mathieu-Daudé## 38390f8c0f9SPhilippe Mathieu-Daudé# @system_wakeup: 38490f8c0f9SPhilippe Mathieu-Daudé# 38590f8c0f9SPhilippe Mathieu-Daudé# Wake up guest from suspend. If the guest has wake-up from suspend 38690f8c0f9SPhilippe Mathieu-Daudé# support enabled (wakeup-suspend-support flag from 38790f8c0f9SPhilippe Mathieu-Daudé# query-current-machine), wake-up guest from suspend if the guest is 38890f8c0f9SPhilippe Mathieu-Daudé# in SUSPENDED state. Return an error otherwise. 38990f8c0f9SPhilippe Mathieu-Daudé# 39090f8c0f9SPhilippe Mathieu-Daudé# Since: 1.1 39190f8c0f9SPhilippe Mathieu-Daudé# 39290f8c0f9SPhilippe Mathieu-Daudé# Note: prior to 4.0, this command does nothing in case the guest 39390f8c0f9SPhilippe Mathieu-Daudé# isn't suspended. 39490f8c0f9SPhilippe Mathieu-Daudé# 39590f8c0f9SPhilippe Mathieu-Daudé# Example: 39690f8c0f9SPhilippe Mathieu-Daudé# 39790f8c0f9SPhilippe Mathieu-Daudé# -> { "execute": "system_wakeup" } 39890f8c0f9SPhilippe Mathieu-Daudé# <- { "return": {} } 39990f8c0f9SPhilippe Mathieu-Daudé## 40090f8c0f9SPhilippe Mathieu-Daudé{ 'command': 'system_wakeup' } 40190f8c0f9SPhilippe Mathieu-Daudé 40290f8c0f9SPhilippe Mathieu-Daudé## 4038dc007d3SPhilippe Mathieu-Daudé# @LostTickPolicy: 4048dc007d3SPhilippe Mathieu-Daudé# 405a937b6aaSMarkus Armbruster# Policy for handling lost ticks in timer devices. Ticks end up 406a937b6aaSMarkus Armbruster# getting lost when, for example, the guest is paused. 4078dc007d3SPhilippe Mathieu-Daudé# 408a937b6aaSMarkus Armbruster# @discard: throw away the missed ticks and continue with future 409a937b6aaSMarkus Armbruster# injection normally. The guest OS will see the timer jump ahead 410a937b6aaSMarkus Armbruster# by a potentially quite significant amount all at once, as if the 4118dc007d3SPhilippe Mathieu-Daudé# intervening chunk of time had simply not existed; needless to 4128dc007d3SPhilippe Mathieu-Daudé# say, such a sudden jump can easily confuse a guest OS which is 4138dc007d3SPhilippe Mathieu-Daudé# not specifically prepared to deal with it. Assuming the guest 4148dc007d3SPhilippe Mathieu-Daudé# OS can deal correctly with the time jump, the time in the guest 4158dc007d3SPhilippe Mathieu-Daudé# and in the host should now match. 4168dc007d3SPhilippe Mathieu-Daudé# 417a937b6aaSMarkus Armbruster# @delay: continue to deliver ticks at the normal rate. The guest OS 418a937b6aaSMarkus Armbruster# will not notice anything is amiss, as from its point of view 419a937b6aaSMarkus Armbruster# time will have continued to flow normally. The time in the 420a937b6aaSMarkus Armbruster# guest should now be behind the time in the host by exactly the 421a937b6aaSMarkus Armbruster# amount of time during which ticks have been missed. 4228dc007d3SPhilippe Mathieu-Daudé# 423a937b6aaSMarkus Armbruster# @slew: deliver ticks at a higher rate to catch up with the missed 424a937b6aaSMarkus Armbruster# ticks. The guest OS will not notice anything is amiss, as from 425a937b6aaSMarkus Armbruster# its point of view time will have continued to flow normally. 426a937b6aaSMarkus Armbruster# Once the timer has managed to catch up with all the missing 427a937b6aaSMarkus Armbruster# ticks, the time in the guest and in the host should match. 4288dc007d3SPhilippe Mathieu-Daudé# 4298dc007d3SPhilippe Mathieu-Daudé# Since: 2.0 4308dc007d3SPhilippe Mathieu-Daudé## 4318dc007d3SPhilippe Mathieu-Daudé{ 'enum': 'LostTickPolicy', 4328dc007d3SPhilippe Mathieu-Daudé 'data': ['discard', 'delay', 'slew' ] } 4338dc007d3SPhilippe Mathieu-Daudé 4348dc007d3SPhilippe Mathieu-Daudé## 435df7a1f48SPhilippe Mathieu-Daudé# @inject-nmi: 436df7a1f48SPhilippe Mathieu-Daudé# 437a937b6aaSMarkus Armbruster# Injects a Non-Maskable Interrupt into the default CPU (x86/s390) or 438a937b6aaSMarkus Armbruster# all CPUs (ppc64). The command fails when the guest doesn't support 439a937b6aaSMarkus Armbruster# injecting. 440df7a1f48SPhilippe Mathieu-Daudé# 4419bc6e893SMarkus Armbruster# Since: 0.14 442df7a1f48SPhilippe Mathieu-Daudé# 443a937b6aaSMarkus Armbruster# Note: prior to 2.1, this command was only supported for x86 and s390 444a937b6aaSMarkus Armbruster# VMs 445df7a1f48SPhilippe Mathieu-Daudé# 446df7a1f48SPhilippe Mathieu-Daudé# Example: 447df7a1f48SPhilippe Mathieu-Daudé# 448df7a1f48SPhilippe Mathieu-Daudé# -> { "execute": "inject-nmi" } 449df7a1f48SPhilippe Mathieu-Daudé# <- { "return": {} } 450df7a1f48SPhilippe Mathieu-Daudé## 451df7a1f48SPhilippe Mathieu-Daudé{ 'command': 'inject-nmi' } 452df7a1f48SPhilippe Mathieu-Daudé 453df7a1f48SPhilippe Mathieu-Daudé## 45481dddc1bSPhilippe Mathieu-Daudé# @KvmInfo: 45581dddc1bSPhilippe Mathieu-Daudé# 45681dddc1bSPhilippe Mathieu-Daudé# Information about support for KVM acceleration 45781dddc1bSPhilippe Mathieu-Daudé# 45881dddc1bSPhilippe Mathieu-Daudé# @enabled: true if KVM acceleration is active 45981dddc1bSPhilippe Mathieu-Daudé# 46081dddc1bSPhilippe Mathieu-Daudé# @present: true if KVM acceleration is built into this executable 46181dddc1bSPhilippe Mathieu-Daudé# 4629bc6e893SMarkus Armbruster# Since: 0.14 46381dddc1bSPhilippe Mathieu-Daudé## 46481dddc1bSPhilippe Mathieu-Daudé{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} } 46581dddc1bSPhilippe Mathieu-Daudé 46681dddc1bSPhilippe Mathieu-Daudé## 46781dddc1bSPhilippe Mathieu-Daudé# @query-kvm: 46881dddc1bSPhilippe Mathieu-Daudé# 46981dddc1bSPhilippe Mathieu-Daudé# Returns information about KVM acceleration 47081dddc1bSPhilippe Mathieu-Daudé# 47181dddc1bSPhilippe Mathieu-Daudé# Returns: @KvmInfo 47281dddc1bSPhilippe Mathieu-Daudé# 4739bc6e893SMarkus Armbruster# Since: 0.14 47481dddc1bSPhilippe Mathieu-Daudé# 47581dddc1bSPhilippe Mathieu-Daudé# Example: 47681dddc1bSPhilippe Mathieu-Daudé# 47781dddc1bSPhilippe Mathieu-Daudé# -> { "execute": "query-kvm" } 47881dddc1bSPhilippe Mathieu-Daudé# <- { "return": { "enabled": true, "present": true } } 47981dddc1bSPhilippe Mathieu-Daudé## 48081dddc1bSPhilippe Mathieu-Daudé{ 'command': 'query-kvm', 'returns': 'KvmInfo' } 48181dddc1bSPhilippe Mathieu-Daudé 48281dddc1bSPhilippe Mathieu-Daudé## 4838ac25c84SMarkus Armbruster# @NumaOptionsType: 4848ac25c84SMarkus Armbruster# 4858ac25c84SMarkus Armbruster# @node: NUMA nodes configuration 4868ac25c84SMarkus Armbruster# 4878ac25c84SMarkus Armbruster# @dist: NUMA distance configuration (since 2.10) 4888ac25c84SMarkus Armbruster# 4898ac25c84SMarkus Armbruster# @cpu: property based CPU(s) to node mapping (Since: 2.10) 4908ac25c84SMarkus Armbruster# 4919b12dfa0SLiu Jingqi# @hmat-lb: memory latency and bandwidth information (Since: 5.0) 4929b12dfa0SLiu Jingqi# 493c412a48dSLiu Jingqi# @hmat-cache: memory side cache information (Since: 5.0) 494c412a48dSLiu Jingqi# 4958ac25c84SMarkus Armbruster# Since: 2.1 4968ac25c84SMarkus Armbruster## 4978ac25c84SMarkus Armbruster{ 'enum': 'NumaOptionsType', 498c412a48dSLiu Jingqi 'data': [ 'node', 'dist', 'cpu', 'hmat-lb', 'hmat-cache' ] } 4998ac25c84SMarkus Armbruster 5008ac25c84SMarkus Armbruster## 5018ac25c84SMarkus Armbruster# @NumaOptions: 5028ac25c84SMarkus Armbruster# 5038ac25c84SMarkus Armbruster# A discriminated record of NUMA options. (for OptsVisitor) 5048ac25c84SMarkus Armbruster# 50589a2273bSMarkus Armbruster# @type: NUMA option type 50689a2273bSMarkus Armbruster# 5078ac25c84SMarkus Armbruster# Since: 2.1 5088ac25c84SMarkus Armbruster## 5098ac25c84SMarkus Armbruster{ 'union': 'NumaOptions', 5108ac25c84SMarkus Armbruster 'base': { 'type': 'NumaOptionsType' }, 5118ac25c84SMarkus Armbruster 'discriminator': 'type', 5128ac25c84SMarkus Armbruster 'data': { 5138ac25c84SMarkus Armbruster 'node': 'NumaNodeOptions', 5148ac25c84SMarkus Armbruster 'dist': 'NumaDistOptions', 5159b12dfa0SLiu Jingqi 'cpu': 'NumaCpuOptions', 516c412a48dSLiu Jingqi 'hmat-lb': 'NumaHmatLBOptions', 517c412a48dSLiu Jingqi 'hmat-cache': 'NumaHmatCacheOptions' }} 5188ac25c84SMarkus Armbruster 5198ac25c84SMarkus Armbruster## 5208ac25c84SMarkus Armbruster# @NumaNodeOptions: 5218ac25c84SMarkus Armbruster# 5228ac25c84SMarkus Armbruster# Create a guest NUMA node. (for OptsVisitor) 5238ac25c84SMarkus Armbruster# 5248ac25c84SMarkus Armbruster# @nodeid: NUMA node ID (increase by 1 from 0 if omitted) 5258ac25c84SMarkus Armbruster# 526a937b6aaSMarkus Armbruster# @cpus: VCPUs belonging to this node (assign VCPUS round-robin if 527a937b6aaSMarkus Armbruster# omitted) 5288ac25c84SMarkus Armbruster# 5298ac25c84SMarkus Armbruster# @mem: memory size of this node; mutually exclusive with @memdev. 530a937b6aaSMarkus Armbruster# Equally divide total memory among nodes if both @mem and @memdev 531a937b6aaSMarkus Armbruster# are omitted. 5328ac25c84SMarkus Armbruster# 533a937b6aaSMarkus Armbruster# @memdev: memory backend object. If specified for one node, it must 534a937b6aaSMarkus Armbruster# be specified for all nodes. 5358ac25c84SMarkus Armbruster# 536a937b6aaSMarkus Armbruster# @initiator: defined in ACPI 6.3 Chapter 5.2.27.3 Table 5-145, points 537a937b6aaSMarkus Armbruster# to the nodeid which has the memory controller responsible for 538a937b6aaSMarkus Armbruster# this NUMA node. This field provides additional information as 539a937b6aaSMarkus Armbruster# to the initiator node that is closest (as in directly attached) 540a937b6aaSMarkus Armbruster# to this node, and therefore has the best performance (since 5.0) 541244b3f44STao Xu# 5428ac25c84SMarkus Armbruster# Since: 2.1 5438ac25c84SMarkus Armbruster## 5448ac25c84SMarkus Armbruster{ 'struct': 'NumaNodeOptions', 5458ac25c84SMarkus Armbruster 'data': { 5468ac25c84SMarkus Armbruster '*nodeid': 'uint16', 5478ac25c84SMarkus Armbruster '*cpus': ['uint16'], 5488ac25c84SMarkus Armbruster '*mem': 'size', 549244b3f44STao Xu '*memdev': 'str', 550244b3f44STao Xu '*initiator': 'uint16' }} 5518ac25c84SMarkus Armbruster 5528ac25c84SMarkus Armbruster## 5538ac25c84SMarkus Armbruster# @NumaDistOptions: 5548ac25c84SMarkus Armbruster# 5558ac25c84SMarkus Armbruster# Set the distance between 2 NUMA nodes. 5568ac25c84SMarkus Armbruster# 5578ac25c84SMarkus Armbruster# @src: source NUMA node. 5588ac25c84SMarkus Armbruster# 5598ac25c84SMarkus Armbruster# @dst: destination NUMA node. 5608ac25c84SMarkus Armbruster# 561a937b6aaSMarkus Armbruster# @val: NUMA distance from source node to destination node. When a 562a937b6aaSMarkus Armbruster# node is unreachable from another node, set the distance between 563a937b6aaSMarkus Armbruster# them to 255. 5648ac25c84SMarkus Armbruster# 5658ac25c84SMarkus Armbruster# Since: 2.10 5668ac25c84SMarkus Armbruster## 5678ac25c84SMarkus Armbruster{ 'struct': 'NumaDistOptions', 5688ac25c84SMarkus Armbruster 'data': { 5698ac25c84SMarkus Armbruster 'src': 'uint16', 5708ac25c84SMarkus Armbruster 'dst': 'uint16', 5718ac25c84SMarkus Armbruster 'val': 'uint8' }} 5728ac25c84SMarkus Armbruster 5738ac25c84SMarkus Armbruster## 574aadfe320SJonathan Cameron# @CXLFixedMemoryWindowOptions: 575aadfe320SJonathan Cameron# 576aadfe320SJonathan Cameron# Create a CXL Fixed Memory Window 577aadfe320SJonathan Cameron# 578aadfe320SJonathan Cameron# @size: Size of the Fixed Memory Window in bytes. Must be a multiple 579aadfe320SJonathan Cameron# of 256MiB. 580a937b6aaSMarkus Armbruster# 581aadfe320SJonathan Cameron# @interleave-granularity: Number of contiguous bytes for which 582a937b6aaSMarkus Armbruster# accesses will go to a given interleave target. Accepted values 583a937b6aaSMarkus Armbruster# [256, 512, 1k, 2k, 4k, 8k, 16k] 584a937b6aaSMarkus Armbruster# 585a937b6aaSMarkus Armbruster# @targets: Target root bridge IDs from -device ...,id=<ID> for each 586a937b6aaSMarkus Armbruster# root bridge. 587aadfe320SJonathan Cameron# 5887c3def93SMarkus Armbruster# Since: 7.1 589aadfe320SJonathan Cameron## 590aadfe320SJonathan Cameron{ 'struct': 'CXLFixedMemoryWindowOptions', 591aadfe320SJonathan Cameron 'data': { 592aadfe320SJonathan Cameron 'size': 'size', 593aadfe320SJonathan Cameron '*interleave-granularity': 'size', 594aadfe320SJonathan Cameron 'targets': ['str'] }} 595aadfe320SJonathan Cameron 596aadfe320SJonathan Cameron## 59703b39fcfSJonathan Cameron# @CXLFMWProperties: 59803b39fcfSJonathan Cameron# 59903b39fcfSJonathan Cameron# List of CXL Fixed Memory Windows. 60003b39fcfSJonathan Cameron# 60103b39fcfSJonathan Cameron# @cxl-fmw: List of CXLFixedMemoryWindowOptions 60203b39fcfSJonathan Cameron# 6037c3def93SMarkus Armbruster# Since: 7.1 60403b39fcfSJonathan Cameron## 60503b39fcfSJonathan Cameron{ 'struct' : 'CXLFMWProperties', 60603b39fcfSJonathan Cameron 'data': { 'cxl-fmw': ['CXLFixedMemoryWindowOptions'] } 60703b39fcfSJonathan Cameron} 60803b39fcfSJonathan Cameron 60903b39fcfSJonathan Cameron## 6108ac25c84SMarkus Armbruster# @X86CPURegister32: 6118ac25c84SMarkus Armbruster# 6128ac25c84SMarkus Armbruster# A X86 32-bit register 6138ac25c84SMarkus Armbruster# 6148ac25c84SMarkus Armbruster# Since: 1.5 6158ac25c84SMarkus Armbruster## 6168ac25c84SMarkus Armbruster{ 'enum': 'X86CPURegister32', 6178ac25c84SMarkus Armbruster 'data': [ 'EAX', 'EBX', 'ECX', 'EDX', 'ESP', 'EBP', 'ESI', 'EDI' ] } 6188ac25c84SMarkus Armbruster 6198ac25c84SMarkus Armbruster## 6208ac25c84SMarkus Armbruster# @X86CPUFeatureWordInfo: 6218ac25c84SMarkus Armbruster# 6228ac25c84SMarkus Armbruster# Information about a X86 CPU feature word 6238ac25c84SMarkus Armbruster# 624a937b6aaSMarkus Armbruster# @cpuid-input-eax: Input EAX value for CPUID instruction for that 625a937b6aaSMarkus Armbruster# feature word 6268ac25c84SMarkus Armbruster# 6278ac25c84SMarkus Armbruster# @cpuid-input-ecx: Input ECX value for CPUID instruction for that 6288ac25c84SMarkus Armbruster# feature word 6298ac25c84SMarkus Armbruster# 6308ac25c84SMarkus Armbruster# @cpuid-register: Output register containing the feature bits 6318ac25c84SMarkus Armbruster# 6328ac25c84SMarkus Armbruster# @features: value of output register, containing the feature bits 6338ac25c84SMarkus Armbruster# 6348ac25c84SMarkus Armbruster# Since: 1.5 6358ac25c84SMarkus Armbruster## 6368ac25c84SMarkus Armbruster{ 'struct': 'X86CPUFeatureWordInfo', 6378ac25c84SMarkus Armbruster 'data': { 'cpuid-input-eax': 'int', 6388ac25c84SMarkus Armbruster '*cpuid-input-ecx': 'int', 6398ac25c84SMarkus Armbruster 'cpuid-register': 'X86CPURegister32', 6408ac25c84SMarkus Armbruster 'features': 'int' } } 6418ac25c84SMarkus Armbruster 6428ac25c84SMarkus Armbruster## 6438ac25c84SMarkus Armbruster# @DummyForceArrays: 6448ac25c84SMarkus Armbruster# 645a937b6aaSMarkus Armbruster# Not used by QMP; hack to let us use X86CPUFeatureWordInfoList 646a937b6aaSMarkus Armbruster# internally 6478ac25c84SMarkus Armbruster# 6488ac25c84SMarkus Armbruster# Since: 2.5 6498ac25c84SMarkus Armbruster## 6508ac25c84SMarkus Armbruster{ 'struct': 'DummyForceArrays', 6518ac25c84SMarkus Armbruster 'data': { 'unused': ['X86CPUFeatureWordInfo'] } } 6528ac25c84SMarkus Armbruster 6538ac25c84SMarkus Armbruster## 6548ac25c84SMarkus Armbruster# @NumaCpuOptions: 6558ac25c84SMarkus Armbruster# 656a937b6aaSMarkus Armbruster# Option "-numa cpu" overrides default cpu to node mapping. It 657a937b6aaSMarkus Armbruster# accepts the same set of cpu properties as returned by 6588ac25c84SMarkus Armbruster# query-hotpluggable-cpus[].props, where node-id could be used to 6598ac25c84SMarkus Armbruster# override default node mapping. 6608ac25c84SMarkus Armbruster# 6618ac25c84SMarkus Armbruster# Since: 2.10 6628ac25c84SMarkus Armbruster## 6638ac25c84SMarkus Armbruster{ 'struct': 'NumaCpuOptions', 6648ac25c84SMarkus Armbruster 'base': 'CpuInstanceProperties', 6658ac25c84SMarkus Armbruster 'data' : {} } 6668ac25c84SMarkus Armbruster 6678ac25c84SMarkus Armbruster## 6689b12dfa0SLiu Jingqi# @HmatLBMemoryHierarchy: 6699b12dfa0SLiu Jingqi# 6709b12dfa0SLiu Jingqi# The memory hierarchy in the System Locality Latency and Bandwidth 6719b12dfa0SLiu Jingqi# Information Structure of HMAT (Heterogeneous Memory Attribute Table) 6729b12dfa0SLiu Jingqi# 6739b12dfa0SLiu Jingqi# For more information about @HmatLBMemoryHierarchy, see chapter 6749b12dfa0SLiu Jingqi# 5.2.27.4: Table 5-146: Field "Flags" of ACPI 6.3 spec. 6759b12dfa0SLiu Jingqi# 6769b12dfa0SLiu Jingqi# @memory: the structure represents the memory performance 6779b12dfa0SLiu Jingqi# 6789b12dfa0SLiu Jingqi# @first-level: first level of memory side cache 6799b12dfa0SLiu Jingqi# 6809b12dfa0SLiu Jingqi# @second-level: second level of memory side cache 6819b12dfa0SLiu Jingqi# 6829b12dfa0SLiu Jingqi# @third-level: third level of memory side cache 6839b12dfa0SLiu Jingqi# 6849b12dfa0SLiu Jingqi# Since: 5.0 6859b12dfa0SLiu Jingqi## 6869b12dfa0SLiu Jingqi{ 'enum': 'HmatLBMemoryHierarchy', 6879b12dfa0SLiu Jingqi 'data': [ 'memory', 'first-level', 'second-level', 'third-level' ] } 6889b12dfa0SLiu Jingqi 6899b12dfa0SLiu Jingqi## 6909b12dfa0SLiu Jingqi# @HmatLBDataType: 6919b12dfa0SLiu Jingqi# 692a937b6aaSMarkus Armbruster# Data type in the System Locality Latency and Bandwidth Information 693a937b6aaSMarkus Armbruster# Structure of HMAT (Heterogeneous Memory Attribute Table) 6949b12dfa0SLiu Jingqi# 695a937b6aaSMarkus Armbruster# For more information about @HmatLBDataType, see chapter 5.2.27.4: 696a937b6aaSMarkus Armbruster# Table 5-146: Field "Data Type" of ACPI 6.3 spec. 6979b12dfa0SLiu Jingqi# 6989b12dfa0SLiu Jingqi# @access-latency: access latency (nanoseconds) 6999b12dfa0SLiu Jingqi# 7009b12dfa0SLiu Jingqi# @read-latency: read latency (nanoseconds) 7019b12dfa0SLiu Jingqi# 7029b12dfa0SLiu Jingqi# @write-latency: write latency (nanoseconds) 7039b12dfa0SLiu Jingqi# 7049b12dfa0SLiu Jingqi# @access-bandwidth: access bandwidth (Bytes per second) 7059b12dfa0SLiu Jingqi# 7069b12dfa0SLiu Jingqi# @read-bandwidth: read bandwidth (Bytes per second) 7079b12dfa0SLiu Jingqi# 7089b12dfa0SLiu Jingqi# @write-bandwidth: write bandwidth (Bytes per second) 7099b12dfa0SLiu Jingqi# 7109b12dfa0SLiu Jingqi# Since: 5.0 7119b12dfa0SLiu Jingqi## 7129b12dfa0SLiu Jingqi{ 'enum': 'HmatLBDataType', 7139b12dfa0SLiu Jingqi 'data': [ 'access-latency', 'read-latency', 'write-latency', 7149b12dfa0SLiu Jingqi 'access-bandwidth', 'read-bandwidth', 'write-bandwidth' ] } 7159b12dfa0SLiu Jingqi 7169b12dfa0SLiu Jingqi## 7179b12dfa0SLiu Jingqi# @NumaHmatLBOptions: 7189b12dfa0SLiu Jingqi# 719a937b6aaSMarkus Armbruster# Set the system locality latency and bandwidth information between 720a937b6aaSMarkus Armbruster# Initiator and Target proximity Domains. 7219b12dfa0SLiu Jingqi# 722a937b6aaSMarkus Armbruster# For more information about @NumaHmatLBOptions, see chapter 5.2.27.4: 723a937b6aaSMarkus Armbruster# Table 5-146 of ACPI 6.3 spec. 7249b12dfa0SLiu Jingqi# 7259b12dfa0SLiu Jingqi# @initiator: the Initiator Proximity Domain. 7269b12dfa0SLiu Jingqi# 7279b12dfa0SLiu Jingqi# @target: the Target Proximity Domain. 7289b12dfa0SLiu Jingqi# 729a937b6aaSMarkus Armbruster# @hierarchy: the Memory Hierarchy. Indicates the performance of 730a937b6aaSMarkus Armbruster# memory or side cache. 7319b12dfa0SLiu Jingqi# 732a937b6aaSMarkus Armbruster# @data-type: presents the type of data, access/read/write latency or 733a937b6aaSMarkus Armbruster# hit latency. 7349b12dfa0SLiu Jingqi# 735a937b6aaSMarkus Armbruster# @latency: the value of latency from @initiator to @target proximity 736a937b6aaSMarkus Armbruster# domain, the latency unit is "ns(nanosecond)". 7379b12dfa0SLiu Jingqi# 7389b12dfa0SLiu Jingqi# @bandwidth: the value of bandwidth between @initiator and @target 739a937b6aaSMarkus Armbruster# proximity domain, the bandwidth unit is "Bytes per second". 7409b12dfa0SLiu Jingqi# 7419b12dfa0SLiu Jingqi# Since: 5.0 7429b12dfa0SLiu Jingqi## 7439b12dfa0SLiu Jingqi{ 'struct': 'NumaHmatLBOptions', 7449b12dfa0SLiu Jingqi 'data': { 7459b12dfa0SLiu Jingqi 'initiator': 'uint16', 7469b12dfa0SLiu Jingqi 'target': 'uint16', 7479b12dfa0SLiu Jingqi 'hierarchy': 'HmatLBMemoryHierarchy', 7489b12dfa0SLiu Jingqi 'data-type': 'HmatLBDataType', 7499b12dfa0SLiu Jingqi '*latency': 'uint64', 7509b12dfa0SLiu Jingqi '*bandwidth': 'size' }} 7519b12dfa0SLiu Jingqi 7529b12dfa0SLiu Jingqi## 753c412a48dSLiu Jingqi# @HmatCacheAssociativity: 754c412a48dSLiu Jingqi# 755c412a48dSLiu Jingqi# Cache associativity in the Memory Side Cache Information Structure 756c412a48dSLiu Jingqi# of HMAT 757c412a48dSLiu Jingqi# 758c412a48dSLiu Jingqi# For more information of @HmatCacheAssociativity, see chapter 759c412a48dSLiu Jingqi# 5.2.27.5: Table 5-147 of ACPI 6.3 spec. 760c412a48dSLiu Jingqi# 761a937b6aaSMarkus Armbruster# @none: None (no memory side cache in this proximity domain, or cache 762a937b6aaSMarkus Armbruster# associativity unknown) 763c412a48dSLiu Jingqi# 764c412a48dSLiu Jingqi# @direct: Direct Mapped 765c412a48dSLiu Jingqi# 766c412a48dSLiu Jingqi# @complex: Complex Cache Indexing (implementation specific) 767c412a48dSLiu Jingqi# 768c412a48dSLiu Jingqi# Since: 5.0 769c412a48dSLiu Jingqi## 770c412a48dSLiu Jingqi{ 'enum': 'HmatCacheAssociativity', 771c412a48dSLiu Jingqi 'data': [ 'none', 'direct', 'complex' ] } 772c412a48dSLiu Jingqi 773c412a48dSLiu Jingqi## 774c412a48dSLiu Jingqi# @HmatCacheWritePolicy: 775c412a48dSLiu Jingqi# 776a937b6aaSMarkus Armbruster# Cache write policy in the Memory Side Cache Information Structure of 777a937b6aaSMarkus Armbruster# HMAT 778c412a48dSLiu Jingqi# 779a937b6aaSMarkus Armbruster# For more information of @HmatCacheWritePolicy, see chapter 5.2.27.5: 780a937b6aaSMarkus Armbruster# Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec. 781c412a48dSLiu Jingqi# 782a937b6aaSMarkus Armbruster# @none: None (no memory side cache in this proximity domain, or cache 783a937b6aaSMarkus Armbruster# write policy unknown) 784c412a48dSLiu Jingqi# 785c412a48dSLiu Jingqi# @write-back: Write Back (WB) 786c412a48dSLiu Jingqi# 787c412a48dSLiu Jingqi# @write-through: Write Through (WT) 788c412a48dSLiu Jingqi# 789c412a48dSLiu Jingqi# Since: 5.0 790c412a48dSLiu Jingqi## 791c412a48dSLiu Jingqi{ 'enum': 'HmatCacheWritePolicy', 792c412a48dSLiu Jingqi 'data': [ 'none', 'write-back', 'write-through' ] } 793c412a48dSLiu Jingqi 794c412a48dSLiu Jingqi## 795c412a48dSLiu Jingqi# @NumaHmatCacheOptions: 796c412a48dSLiu Jingqi# 797c412a48dSLiu Jingqi# Set the memory side cache information for a given memory domain. 798c412a48dSLiu Jingqi# 799a937b6aaSMarkus Armbruster# For more information of @NumaHmatCacheOptions, see chapter 5.2.27.5: 800a937b6aaSMarkus Armbruster# Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec. 801c412a48dSLiu Jingqi# 802c412a48dSLiu Jingqi# @node-id: the memory proximity domain to which the memory belongs. 803c412a48dSLiu Jingqi# 804c412a48dSLiu Jingqi# @size: the size of memory side cache in bytes. 805c412a48dSLiu Jingqi# 806c412a48dSLiu Jingqi# @level: the cache level described in this structure. 807c412a48dSLiu Jingqi# 808c412a48dSLiu Jingqi# @associativity: the cache associativity, 809c412a48dSLiu Jingqi# none/direct-mapped/complex(complex cache indexing). 810c412a48dSLiu Jingqi# 811c412a48dSLiu Jingqi# @policy: the write policy, none/write-back/write-through. 812c412a48dSLiu Jingqi# 813c412a48dSLiu Jingqi# @line: the cache Line size in bytes. 814c412a48dSLiu Jingqi# 815c412a48dSLiu Jingqi# Since: 5.0 816c412a48dSLiu Jingqi## 817c412a48dSLiu Jingqi{ 'struct': 'NumaHmatCacheOptions', 818c412a48dSLiu Jingqi 'data': { 819c412a48dSLiu Jingqi 'node-id': 'uint32', 820c412a48dSLiu Jingqi 'size': 'size', 821c412a48dSLiu Jingqi 'level': 'uint8', 822c412a48dSLiu Jingqi 'associativity': 'HmatCacheAssociativity', 823c412a48dSLiu Jingqi 'policy': 'HmatCacheWritePolicy', 824c412a48dSLiu Jingqi 'line': 'uint16' }} 825c412a48dSLiu Jingqi 826c412a48dSLiu Jingqi## 827d4130cbfSPhilippe Mathieu-Daudé# @memsave: 828d4130cbfSPhilippe Mathieu-Daudé# 829d4130cbfSPhilippe Mathieu-Daudé# Save a portion of guest memory to a file. 830d4130cbfSPhilippe Mathieu-Daudé# 831d4130cbfSPhilippe Mathieu-Daudé# @val: the virtual address of the guest to start from 832d4130cbfSPhilippe Mathieu-Daudé# 833d4130cbfSPhilippe Mathieu-Daudé# @size: the size of memory region to save 834d4130cbfSPhilippe Mathieu-Daudé# 835d4130cbfSPhilippe Mathieu-Daudé# @filename: the file to save the memory to as binary data 836d4130cbfSPhilippe Mathieu-Daudé# 837d4130cbfSPhilippe Mathieu-Daudé# @cpu-index: the index of the virtual CPU to use for translating the 838d4130cbfSPhilippe Mathieu-Daudé# virtual address (defaults to CPU 0) 839d4130cbfSPhilippe Mathieu-Daudé# 8409bc6e893SMarkus Armbruster# Since: 0.14 841d4130cbfSPhilippe Mathieu-Daudé# 842d4130cbfSPhilippe Mathieu-Daudé# Notes: Errors were not reliably returned until 1.1 843d4130cbfSPhilippe Mathieu-Daudé# 844d4130cbfSPhilippe Mathieu-Daudé# Example: 845d4130cbfSPhilippe Mathieu-Daudé# 846d4130cbfSPhilippe Mathieu-Daudé# -> { "execute": "memsave", 847d4130cbfSPhilippe Mathieu-Daudé# "arguments": { "val": 10, 848d4130cbfSPhilippe Mathieu-Daudé# "size": 100, 849d4130cbfSPhilippe Mathieu-Daudé# "filename": "/tmp/virtual-mem-dump" } } 850d4130cbfSPhilippe Mathieu-Daudé# <- { "return": {} } 851d4130cbfSPhilippe Mathieu-Daudé## 852d4130cbfSPhilippe Mathieu-Daudé{ 'command': 'memsave', 853d4130cbfSPhilippe Mathieu-Daudé 'data': {'val': 'int', 'size': 'int', 'filename': 'str', '*cpu-index': 'int'} } 854d4130cbfSPhilippe Mathieu-Daudé 855d4130cbfSPhilippe Mathieu-Daudé## 856d4130cbfSPhilippe Mathieu-Daudé# @pmemsave: 857d4130cbfSPhilippe Mathieu-Daudé# 858d4130cbfSPhilippe Mathieu-Daudé# Save a portion of guest physical memory to a file. 859d4130cbfSPhilippe Mathieu-Daudé# 860d4130cbfSPhilippe Mathieu-Daudé# @val: the physical address of the guest to start from 861d4130cbfSPhilippe Mathieu-Daudé# 862d4130cbfSPhilippe Mathieu-Daudé# @size: the size of memory region to save 863d4130cbfSPhilippe Mathieu-Daudé# 864d4130cbfSPhilippe Mathieu-Daudé# @filename: the file to save the memory to as binary data 865d4130cbfSPhilippe Mathieu-Daudé# 8669bc6e893SMarkus Armbruster# Since: 0.14 867d4130cbfSPhilippe Mathieu-Daudé# 868d4130cbfSPhilippe Mathieu-Daudé# Notes: Errors were not reliably returned until 1.1 869d4130cbfSPhilippe Mathieu-Daudé# 870d4130cbfSPhilippe Mathieu-Daudé# Example: 871d4130cbfSPhilippe Mathieu-Daudé# 872d4130cbfSPhilippe Mathieu-Daudé# -> { "execute": "pmemsave", 873d4130cbfSPhilippe Mathieu-Daudé# "arguments": { "val": 10, 874d4130cbfSPhilippe Mathieu-Daudé# "size": 100, 875d4130cbfSPhilippe Mathieu-Daudé# "filename": "/tmp/physical-mem-dump" } } 876d4130cbfSPhilippe Mathieu-Daudé# <- { "return": {} } 877d4130cbfSPhilippe Mathieu-Daudé## 878d4130cbfSPhilippe Mathieu-Daudé{ 'command': 'pmemsave', 879d4130cbfSPhilippe Mathieu-Daudé 'data': {'val': 'int', 'size': 'int', 'filename': 'str'} } 880d4130cbfSPhilippe Mathieu-Daudé 881d4130cbfSPhilippe Mathieu-Daudé## 8828ac25c84SMarkus Armbruster# @Memdev: 8838ac25c84SMarkus Armbruster# 8848ac25c84SMarkus Armbruster# Information about memory backend 8858ac25c84SMarkus Armbruster# 8868ac25c84SMarkus Armbruster# @id: backend's ID if backend has 'id' property (since 2.9) 8878ac25c84SMarkus Armbruster# 8888ac25c84SMarkus Armbruster# @size: memory backend size 8898ac25c84SMarkus Armbruster# 890157cfaf9SDavid Hildenbrand# @merge: whether memory merge support is enabled 8918ac25c84SMarkus Armbruster# 892157cfaf9SDavid Hildenbrand# @dump: whether memory backend's memory is included in a core dump 8938ac25c84SMarkus Armbruster# 894157cfaf9SDavid Hildenbrand# @prealloc: whether memory was preallocated 8958ac25c84SMarkus Armbruster# 896d300fc54SDavid Hildenbrand# @share: whether memory is private to QEMU or shared (since 6.1) 897d300fc54SDavid Hildenbrand# 898a937b6aaSMarkus Armbruster# @reserve: whether swap space (or huge pages) was reserved if 899a937b6aaSMarkus Armbruster# applicable. This corresponds to the user configuration and not 900a937b6aaSMarkus Armbruster# the actual behavior implemented in the OS to perform the 901a937b6aaSMarkus Armbruster# reservation. For example, Linux will never reserve swap space 902a937b6aaSMarkus Armbruster# for shared file mappings. (since 6.1) 90369647f9dSDavid Hildenbrand# 9048ac25c84SMarkus Armbruster# @host-nodes: host nodes for its memory policy 9058ac25c84SMarkus Armbruster# 9068ac25c84SMarkus Armbruster# @policy: memory policy of memory backend 9078ac25c84SMarkus Armbruster# 9088ac25c84SMarkus Armbruster# Since: 2.1 9098ac25c84SMarkus Armbruster## 9108ac25c84SMarkus Armbruster{ 'struct': 'Memdev', 9118ac25c84SMarkus Armbruster 'data': { 9128ac25c84SMarkus Armbruster '*id': 'str', 9138ac25c84SMarkus Armbruster 'size': 'size', 9148ac25c84SMarkus Armbruster 'merge': 'bool', 9158ac25c84SMarkus Armbruster 'dump': 'bool', 9168ac25c84SMarkus Armbruster 'prealloc': 'bool', 917d300fc54SDavid Hildenbrand 'share': 'bool', 91869647f9dSDavid Hildenbrand '*reserve': 'bool', 9198ac25c84SMarkus Armbruster 'host-nodes': ['uint16'], 9208ac25c84SMarkus Armbruster 'policy': 'HostMemPolicy' }} 9218ac25c84SMarkus Armbruster 9228ac25c84SMarkus Armbruster## 9238ac25c84SMarkus Armbruster# @query-memdev: 9248ac25c84SMarkus Armbruster# 9258ac25c84SMarkus Armbruster# Returns information for all memory backends. 9268ac25c84SMarkus Armbruster# 9278ac25c84SMarkus Armbruster# Returns: a list of @Memdev. 9288ac25c84SMarkus Armbruster# 9298ac25c84SMarkus Armbruster# Since: 2.1 9308ac25c84SMarkus Armbruster# 9318ac25c84SMarkus Armbruster# Example: 9328ac25c84SMarkus Armbruster# 9338ac25c84SMarkus Armbruster# -> { "execute": "query-memdev" } 9348ac25c84SMarkus Armbruster# <- { "return": [ 9358ac25c84SMarkus Armbruster# { 9368ac25c84SMarkus Armbruster# "id": "mem1", 9378ac25c84SMarkus Armbruster# "size": 536870912, 9388ac25c84SMarkus Armbruster# "merge": false, 9398ac25c84SMarkus Armbruster# "dump": true, 9408ac25c84SMarkus Armbruster# "prealloc": false, 9417c90031dSVictor Toso# "share": false, 9428ac25c84SMarkus Armbruster# "host-nodes": [0, 1], 9438ac25c84SMarkus Armbruster# "policy": "bind" 9448ac25c84SMarkus Armbruster# }, 9458ac25c84SMarkus Armbruster# { 9468ac25c84SMarkus Armbruster# "size": 536870912, 9478ac25c84SMarkus Armbruster# "merge": false, 9488ac25c84SMarkus Armbruster# "dump": true, 9498ac25c84SMarkus Armbruster# "prealloc": true, 9507c90031dSVictor Toso# "share": false, 9518ac25c84SMarkus Armbruster# "host-nodes": [2, 3], 9528ac25c84SMarkus Armbruster# "policy": "preferred" 9538ac25c84SMarkus Armbruster# } 9548ac25c84SMarkus Armbruster# ] 9558ac25c84SMarkus Armbruster# } 9568ac25c84SMarkus Armbruster## 9578ac25c84SMarkus Armbruster{ 'command': 'query-memdev', 'returns': ['Memdev'], 'allow-preconfig': true } 9588ac25c84SMarkus Armbruster 9598ac25c84SMarkus Armbruster## 9608ac25c84SMarkus Armbruster# @CpuInstanceProperties: 9618ac25c84SMarkus Armbruster# 962a937b6aaSMarkus Armbruster# List of properties to be used for hotplugging a CPU instance, it 963a937b6aaSMarkus Armbruster# should be passed by management with device_add command when a CPU is 964a937b6aaSMarkus Armbruster# being hotplugged. 9658ac25c84SMarkus Armbruster# 9663da4aef8SNina Schoetterl-Glausch# Which members are optional and which mandatory depends on the 9673da4aef8SNina Schoetterl-Glausch# architecture and board. 9683da4aef8SNina Schoetterl-Glausch# 9690d177cddSPierre Morel# For s390x see :ref:`cpu-topology-s390x`. 9700d177cddSPierre Morel# 9713da4aef8SNina Schoetterl-Glausch# The ids other than the node-id specify the position of the CPU 9723da4aef8SNina Schoetterl-Glausch# within the CPU topology (as defined by the machine property "smp", 9733da4aef8SNina Schoetterl-Glausch# thus see also type @SMPConfiguration) 9743da4aef8SNina Schoetterl-Glausch# 9758ac25c84SMarkus Armbruster# @node-id: NUMA node ID the CPU belongs to 976a937b6aaSMarkus Armbruster# 9775de1aff2SPierre Morel# @drawer-id: drawer number within CPU topology the CPU belongs to 9785de1aff2SPierre Morel# (since 8.2) 9795de1aff2SPierre Morel# 9805de1aff2SPierre Morel# @book-id: book number within parent container the CPU belongs to 9815de1aff2SPierre Morel# (since 8.2) 9825de1aff2SPierre Morel# 9835de1aff2SPierre Morel# @socket-id: socket number within parent container the CPU belongs to 984a937b6aaSMarkus Armbruster# 9853da4aef8SNina Schoetterl-Glausch# @die-id: die number within the parent container the CPU belongs to 9863da4aef8SNina Schoetterl-Glausch# (since 4.1) 987a937b6aaSMarkus Armbruster# 9883da4aef8SNina Schoetterl-Glausch# @cluster-id: cluster number within the parent container the CPU 9893da4aef8SNina Schoetterl-Glausch# belongs to (since 7.1) 990a937b6aaSMarkus Armbruster# 991989bb312SZhao Liu# @module-id: module number within the parent container the CPU belongs 992989bb312SZhao Liu# to (since 9.1) 993989bb312SZhao Liu# 994209e64d9SMarkus Armbruster# @core-id: core number within the parent container the CPU belongs to 995a937b6aaSMarkus Armbruster# 9963da4aef8SNina Schoetterl-Glausch# @thread-id: thread number within the core the CPU belongs to 9978ac25c84SMarkus Armbruster# 9983da4aef8SNina Schoetterl-Glausch# Note: management should be prepared to pass through additional 9993da4aef8SNina Schoetterl-Glausch# properties with device_add. 10008ac25c84SMarkus Armbruster# 10018ac25c84SMarkus Armbruster# Since: 2.7 10028ac25c84SMarkus Armbruster## 10038ac25c84SMarkus Armbruster{ 'struct': 'CpuInstanceProperties', 10043da4aef8SNina Schoetterl-Glausch # Keep these in sync with the properties device_add accepts 10058ac25c84SMarkus Armbruster 'data': { '*node-id': 'int', 10065de1aff2SPierre Morel '*drawer-id': 'int', 10075de1aff2SPierre Morel '*book-id': 'int', 10088ac25c84SMarkus Armbruster '*socket-id': 'int', 1009176d2cdaSLike Xu '*die-id': 'int', 10101dcf7001SGavin Shan '*cluster-id': 'int', 1011989bb312SZhao Liu '*module-id': 'int', 10128ac25c84SMarkus Armbruster '*core-id': 'int', 10138ac25c84SMarkus Armbruster '*thread-id': 'int' 10148ac25c84SMarkus Armbruster } 10158ac25c84SMarkus Armbruster} 10168ac25c84SMarkus Armbruster 10178ac25c84SMarkus Armbruster## 10188ac25c84SMarkus Armbruster# @HotpluggableCPU: 10198ac25c84SMarkus Armbruster# 10208ac25c84SMarkus Armbruster# @type: CPU object type for usage with device_add command 1021a937b6aaSMarkus Armbruster# 10228ac25c84SMarkus Armbruster# @props: list of properties to be used for hotplugging CPU 1023a937b6aaSMarkus Armbruster# 1024a937b6aaSMarkus Armbruster# @vcpus-count: number of logical VCPU threads @HotpluggableCPU 1025a937b6aaSMarkus Armbruster# provides 1026a937b6aaSMarkus Armbruster# 1027a937b6aaSMarkus Armbruster# @qom-path: link to existing CPU object if CPU is present or omitted 1028a937b6aaSMarkus Armbruster# if CPU is not present. 10298ac25c84SMarkus Armbruster# 10308ac25c84SMarkus Armbruster# Since: 2.7 10318ac25c84SMarkus Armbruster## 10328ac25c84SMarkus Armbruster{ 'struct': 'HotpluggableCPU', 10338ac25c84SMarkus Armbruster 'data': { 'type': 'str', 10348ac25c84SMarkus Armbruster 'vcpus-count': 'int', 10358ac25c84SMarkus Armbruster 'props': 'CpuInstanceProperties', 10368ac25c84SMarkus Armbruster '*qom-path': 'str' 10378ac25c84SMarkus Armbruster } 10388ac25c84SMarkus Armbruster} 10398ac25c84SMarkus Armbruster 10408ac25c84SMarkus Armbruster## 10418ac25c84SMarkus Armbruster# @query-hotpluggable-cpus: 10428ac25c84SMarkus Armbruster# 10438ac25c84SMarkus Armbruster# TODO: Better documentation; currently there is none. 10448ac25c84SMarkus Armbruster# 10458ac25c84SMarkus Armbruster# Returns: a list of HotpluggableCPU objects. 10468ac25c84SMarkus Armbruster# 10478ac25c84SMarkus Armbruster# Since: 2.7 10488ac25c84SMarkus Armbruster# 104937fa48a4SMarkus Armbruster# Examples: 10508ac25c84SMarkus Armbruster# 1051209e64d9SMarkus Armbruster# For pseries machine type started with -smp 2,cores=2,maxcpus=4 1052209e64d9SMarkus Armbruster# -cpu POWER8: 10538ac25c84SMarkus Armbruster# 10548ac25c84SMarkus Armbruster# -> { "execute": "query-hotpluggable-cpus" } 10558ac25c84SMarkus Armbruster# <- {"return": [ 1056b4c32cbfSVictor Toso# { "props": { "core-id": 8 }, "type": "POWER8-spapr-cpu-core", 10578ac25c84SMarkus Armbruster# "vcpus-count": 1 }, 1058b4c32cbfSVictor Toso# { "props": { "core-id": 0 }, "type": "POWER8-spapr-cpu-core", 10598ac25c84SMarkus Armbruster# "vcpus-count": 1, "qom-path": "/machine/unattached/device[0]"} 10608ac25c84SMarkus Armbruster# ]}' 10618ac25c84SMarkus Armbruster# 10628ac25c84SMarkus Armbruster# For pc machine type started with -smp 1,maxcpus=2: 10638ac25c84SMarkus Armbruster# 10648ac25c84SMarkus Armbruster# -> { "execute": "query-hotpluggable-cpus" } 10658ac25c84SMarkus Armbruster# <- {"return": [ 10668ac25c84SMarkus Armbruster# { 10678ac25c84SMarkus Armbruster# "type": "qemu64-x86_64-cpu", "vcpus-count": 1, 10688ac25c84SMarkus Armbruster# "props": {"core-id": 0, "socket-id": 1, "thread-id": 0} 10698ac25c84SMarkus Armbruster# }, 10708ac25c84SMarkus Armbruster# { 10718ac25c84SMarkus Armbruster# "qom-path": "/machine/unattached/device[0]", 10728ac25c84SMarkus Armbruster# "type": "qemu64-x86_64-cpu", "vcpus-count": 1, 10738ac25c84SMarkus Armbruster# "props": {"core-id": 0, "socket-id": 0, "thread-id": 0} 10748ac25c84SMarkus Armbruster# } 10758ac25c84SMarkus Armbruster# ]} 10768ac25c84SMarkus Armbruster# 1077209e64d9SMarkus Armbruster# For s390x-virtio-ccw machine type started with -smp 1,maxcpus=2 1078209e64d9SMarkus Armbruster# -cpu qemu (Since: 2.11): 10798ac25c84SMarkus Armbruster# 10808ac25c84SMarkus Armbruster# -> { "execute": "query-hotpluggable-cpus" } 10818ac25c84SMarkus Armbruster# <- {"return": [ 10828ac25c84SMarkus Armbruster# { 10838ac25c84SMarkus Armbruster# "type": "qemu-s390x-cpu", "vcpus-count": 1, 10848ac25c84SMarkus Armbruster# "props": { "core-id": 1 } 10858ac25c84SMarkus Armbruster# }, 10868ac25c84SMarkus Armbruster# { 10878ac25c84SMarkus Armbruster# "qom-path": "/machine/unattached/device[0]", 10888ac25c84SMarkus Armbruster# "type": "qemu-s390x-cpu", "vcpus-count": 1, 10898ac25c84SMarkus Armbruster# "props": { "core-id": 0 } 10908ac25c84SMarkus Armbruster# } 10918ac25c84SMarkus Armbruster# ]} 10928ac25c84SMarkus Armbruster## 10938ac25c84SMarkus Armbruster{ 'command': 'query-hotpluggable-cpus', 'returns': ['HotpluggableCPU'], 10948ac25c84SMarkus Armbruster 'allow-preconfig': true } 10958ac25c84SMarkus Armbruster 10968ac25c84SMarkus Armbruster## 10978ac25c84SMarkus Armbruster# @set-numa-node: 10988ac25c84SMarkus Armbruster# 1099a937b6aaSMarkus Armbruster# Runtime equivalent of '-numa' CLI option, available at preconfigure 1100a937b6aaSMarkus Armbruster# stage to configure numa mapping before initializing machine. 11018ac25c84SMarkus Armbruster# 1102433a4fdcSMarkus Armbruster# Since: 3.0 11038ac25c84SMarkus Armbruster## 11048ac25c84SMarkus Armbruster{ 'command': 'set-numa-node', 'boxed': true, 11058ac25c84SMarkus Armbruster 'data': 'NumaOptions', 11068ac25c84SMarkus Armbruster 'allow-preconfig': true 11078ac25c84SMarkus Armbruster} 1108a83e24baSPhilippe Mathieu-Daudé 1109a83e24baSPhilippe Mathieu-Daudé## 1110a83e24baSPhilippe Mathieu-Daudé# @balloon: 1111a83e24baSPhilippe Mathieu-Daudé# 1112a83e24baSPhilippe Mathieu-Daudé# Request the balloon driver to change its balloon size. 1113a83e24baSPhilippe Mathieu-Daudé# 1114a937b6aaSMarkus Armbruster# @value: the target logical size of the VM in bytes. We can deduce 1115a937b6aaSMarkus Armbruster# the size of the balloon using this formula: 1116826bd069SPeter Maydell# 1117a83e24baSPhilippe Mathieu-Daudé# logical_vm_size = vm_ram_size - balloon_size 1118826bd069SPeter Maydell# 1119a83e24baSPhilippe Mathieu-Daudé# From it we have: balloon_size = vm_ram_size - @value 1120a83e24baSPhilippe Mathieu-Daudé# 11212746f060SMarkus Armbruster# Errors: 1122e6ab40feSMarkus Armbruster# - If the balloon driver is enabled but not functional because 1123e6ab40feSMarkus Armbruster# the KVM kernel module cannot support it, KVMMissingCap 1124a83e24baSPhilippe Mathieu-Daudé# - If no balloon device is present, DeviceNotActive 1125a83e24baSPhilippe Mathieu-Daudé# 1126a937b6aaSMarkus Armbruster# Notes: This command just issues a request to the guest. When it 1127a937b6aaSMarkus Armbruster# returns, the balloon size may not have changed. A guest can 1128a937b6aaSMarkus Armbruster# change the balloon size independent of this command. 1129a83e24baSPhilippe Mathieu-Daudé# 11309bc6e893SMarkus Armbruster# Since: 0.14 1131a83e24baSPhilippe Mathieu-Daudé# 1132a83e24baSPhilippe Mathieu-Daudé# Example: 1133a83e24baSPhilippe Mathieu-Daudé# 1134a83e24baSPhilippe Mathieu-Daudé# -> { "execute": "balloon", "arguments": { "value": 536870912 } } 1135a83e24baSPhilippe Mathieu-Daudé# <- { "return": {} } 1136a83e24baSPhilippe Mathieu-Daudé# 1137a83e24baSPhilippe Mathieu-Daudé# With a 2.5GiB guest this command inflated the ballon to 3GiB. 1138a83e24baSPhilippe Mathieu-Daudé## 1139a83e24baSPhilippe Mathieu-Daudé{ 'command': 'balloon', 'data': {'value': 'int'} } 1140a83e24baSPhilippe Mathieu-Daudé 1141a83e24baSPhilippe Mathieu-Daudé## 1142a83e24baSPhilippe Mathieu-Daudé# @BalloonInfo: 1143a83e24baSPhilippe Mathieu-Daudé# 1144a83e24baSPhilippe Mathieu-Daudé# Information about the guest balloon device. 1145a83e24baSPhilippe Mathieu-Daudé# 1146a937b6aaSMarkus Armbruster# @actual: the logical size of the VM in bytes Formula used: 1147a937b6aaSMarkus Armbruster# logical_vm_size = vm_ram_size - balloon_size 1148a83e24baSPhilippe Mathieu-Daudé# 11499bc6e893SMarkus Armbruster# Since: 0.14 1150a83e24baSPhilippe Mathieu-Daudé## 1151a83e24baSPhilippe Mathieu-Daudé{ 'struct': 'BalloonInfo', 'data': {'actual': 'int' } } 1152a83e24baSPhilippe Mathieu-Daudé 1153a83e24baSPhilippe Mathieu-Daudé## 1154a83e24baSPhilippe Mathieu-Daudé# @query-balloon: 1155a83e24baSPhilippe Mathieu-Daudé# 1156a83e24baSPhilippe Mathieu-Daudé# Return information about the balloon device. 1157a83e24baSPhilippe Mathieu-Daudé# 1158a937b6aaSMarkus Armbruster# Returns: 1159e2c1dcbcSMarkus Armbruster# @BalloonInfo 11602746f060SMarkus Armbruster# 11612746f060SMarkus Armbruster# Errors: 1162e6ab40feSMarkus Armbruster# - If the balloon driver is enabled but not functional because 1163e6ab40feSMarkus Armbruster# the KVM kernel module cannot support it, KVMMissingCap 1164a83e24baSPhilippe Mathieu-Daudé# - If no balloon device is present, DeviceNotActive 1165a83e24baSPhilippe Mathieu-Daudé# 11669bc6e893SMarkus Armbruster# Since: 0.14 1167a83e24baSPhilippe Mathieu-Daudé# 1168a83e24baSPhilippe Mathieu-Daudé# Example: 1169a83e24baSPhilippe Mathieu-Daudé# 1170a83e24baSPhilippe Mathieu-Daudé# -> { "execute": "query-balloon" } 1171a83e24baSPhilippe Mathieu-Daudé# <- { "return": { 11725d07159dSVictor Toso# "actual": 1073741824 1173a83e24baSPhilippe Mathieu-Daudé# } 1174a83e24baSPhilippe Mathieu-Daudé# } 1175a83e24baSPhilippe Mathieu-Daudé## 1176a83e24baSPhilippe Mathieu-Daudé{ 'command': 'query-balloon', 'returns': 'BalloonInfo' } 1177a83e24baSPhilippe Mathieu-Daudé 1178a83e24baSPhilippe Mathieu-Daudé## 1179a83e24baSPhilippe Mathieu-Daudé# @BALLOON_CHANGE: 1180a83e24baSPhilippe Mathieu-Daudé# 1181a937b6aaSMarkus Armbruster# Emitted when the guest changes the actual BALLOON level. This value 1182a937b6aaSMarkus Armbruster# is equivalent to the @actual field return by the 'query-balloon' 1183a937b6aaSMarkus Armbruster# command 1184a83e24baSPhilippe Mathieu-Daudé# 1185a937b6aaSMarkus Armbruster# @actual: the logical size of the VM in bytes Formula used: 1186a937b6aaSMarkus Armbruster# logical_vm_size = vm_ram_size - balloon_size 1187a83e24baSPhilippe Mathieu-Daudé# 1188a83e24baSPhilippe Mathieu-Daudé# Note: this event is rate-limited. 1189a83e24baSPhilippe Mathieu-Daudé# 1190a83e24baSPhilippe Mathieu-Daudé# Since: 1.2 1191a83e24baSPhilippe Mathieu-Daudé# 1192a83e24baSPhilippe Mathieu-Daudé# Example: 1193a83e24baSPhilippe Mathieu-Daudé# 1194a83e24baSPhilippe Mathieu-Daudé# <- { "event": "BALLOON_CHANGE", 1195a83e24baSPhilippe Mathieu-Daudé# "data": { "actual": 944766976 }, 1196a83e24baSPhilippe Mathieu-Daudé# "timestamp": { "seconds": 1267020223, "microseconds": 435656 } } 1197a83e24baSPhilippe Mathieu-Daudé## 1198a83e24baSPhilippe Mathieu-Daudé{ 'event': 'BALLOON_CHANGE', 1199a83e24baSPhilippe Mathieu-Daudé 'data': { 'actual': 'int' } } 1200b495ec6cSPhilippe Mathieu-Daudé 1201b495ec6cSPhilippe Mathieu-Daudé## 1202259ebed4SMaciej S. Szmigiero# @HvBalloonInfo: 1203259ebed4SMaciej S. Szmigiero# 1204259ebed4SMaciej S. Szmigiero# hv-balloon guest-provided memory status information. 1205259ebed4SMaciej S. Szmigiero# 1206259ebed4SMaciej S. Szmigiero# @committed: the amount of memory in use inside the guest plus the 1207259ebed4SMaciej S. Szmigiero# amount of the memory unusable inside the guest (ballooned out, 1208259ebed4SMaciej S. Szmigiero# offline, etc.) 1209259ebed4SMaciej S. Szmigiero# 1210259ebed4SMaciej S. Szmigiero# @available: the amount of the memory inside the guest available for 1211259ebed4SMaciej S. Szmigiero# new allocations ("free") 1212259ebed4SMaciej S. Szmigiero# 1213259ebed4SMaciej S. Szmigiero# Since: 8.2 1214259ebed4SMaciej S. Szmigiero## 1215259ebed4SMaciej S. Szmigiero{ 'struct': 'HvBalloonInfo', 1216259ebed4SMaciej S. Szmigiero 'data': { 'committed': 'size', 'available': 'size' } } 1217259ebed4SMaciej S. Szmigiero 1218259ebed4SMaciej S. Szmigiero## 1219259ebed4SMaciej S. Szmigiero# @query-hv-balloon-status-report: 1220259ebed4SMaciej S. Szmigiero# 1221209e64d9SMarkus Armbruster# Returns the hv-balloon driver data contained in the last received 1222209e64d9SMarkus Armbruster# "STATUS" message from the guest. 1223259ebed4SMaciej S. Szmigiero# 1224259ebed4SMaciej S. Szmigiero# Returns: 1225e2c1dcbcSMarkus Armbruster# @HvBalloonInfo 12262746f060SMarkus Armbruster# 12272746f060SMarkus Armbruster# Errors: 1228e6ab40feSMarkus Armbruster# - If no hv-balloon device is present, guest memory status 1229e6ab40feSMarkus Armbruster# reporting is not enabled or no guest memory status report 1230e6ab40feSMarkus Armbruster# received yet, GenericError 1231259ebed4SMaciej S. Szmigiero# 1232259ebed4SMaciej S. Szmigiero# Since: 8.2 1233259ebed4SMaciej S. Szmigiero# 1234259ebed4SMaciej S. Szmigiero# Example: 1235259ebed4SMaciej S. Szmigiero# 1236259ebed4SMaciej S. Szmigiero# -> { "execute": "query-hv-balloon-status-report" } 1237259ebed4SMaciej S. Szmigiero# <- { "return": { 1238259ebed4SMaciej S. Szmigiero# "committed": 816640000, 1239259ebed4SMaciej S. Szmigiero# "available": 3333054464 1240259ebed4SMaciej S. Szmigiero# } 1241259ebed4SMaciej S. Szmigiero# } 1242259ebed4SMaciej S. Szmigiero## 1243259ebed4SMaciej S. Szmigiero{ 'command': 'query-hv-balloon-status-report', 'returns': 'HvBalloonInfo' } 1244259ebed4SMaciej S. Szmigiero 1245259ebed4SMaciej S. Szmigiero## 1246259ebed4SMaciej S. Szmigiero# @HV_BALLOON_STATUS_REPORT: 1247259ebed4SMaciej S. Szmigiero# 1248259ebed4SMaciej S. Szmigiero# Emitted when the hv-balloon driver receives a "STATUS" message from 1249259ebed4SMaciej S. Szmigiero# the guest. 1250259ebed4SMaciej S. Szmigiero# 1251259ebed4SMaciej S. Szmigiero# Note: this event is rate-limited. 1252259ebed4SMaciej S. Szmigiero# 1253259ebed4SMaciej S. Szmigiero# Since: 8.2 1254259ebed4SMaciej S. Szmigiero# 1255259ebed4SMaciej S. Szmigiero# Example: 1256259ebed4SMaciej S. Szmigiero# 1257259ebed4SMaciej S. Szmigiero# <- { "event": "HV_BALLOON_STATUS_REPORT", 1258259ebed4SMaciej S. Szmigiero# "data": { "committed": 816640000, "available": 3333054464 }, 1259259ebed4SMaciej S. Szmigiero# "timestamp": { "seconds": 1600295492, "microseconds": 661044 } } 1260259ebed4SMaciej S. Szmigiero## 1261259ebed4SMaciej S. Szmigiero{ 'event': 'HV_BALLOON_STATUS_REPORT', 1262259ebed4SMaciej S. Szmigiero 'data': 'HvBalloonInfo' } 1263259ebed4SMaciej S. Szmigiero 1264259ebed4SMaciej S. Szmigiero## 1265b495ec6cSPhilippe Mathieu-Daudé# @MemoryInfo: 1266b495ec6cSPhilippe Mathieu-Daudé# 1267b495ec6cSPhilippe Mathieu-Daudé# Actual memory information in bytes. 1268b495ec6cSPhilippe Mathieu-Daudé# 1269b495ec6cSPhilippe Mathieu-Daudé# @base-memory: size of "base" memory specified with command line 1270b495ec6cSPhilippe Mathieu-Daudé# option -m. 1271b495ec6cSPhilippe Mathieu-Daudé# 1272a937b6aaSMarkus Armbruster# @plugged-memory: size of memory that can be hot-unplugged. This 1273a937b6aaSMarkus Armbruster# field is omitted if target doesn't support memory hotplug (i.e. 1274a937b6aaSMarkus Armbruster# CONFIG_MEM_DEVICE not defined at build time). 1275b495ec6cSPhilippe Mathieu-Daudé# 12769bc6e893SMarkus Armbruster# Since: 2.11 1277b495ec6cSPhilippe Mathieu-Daudé## 1278b495ec6cSPhilippe Mathieu-Daudé{ 'struct': 'MemoryInfo', 1279b495ec6cSPhilippe Mathieu-Daudé 'data' : { 'base-memory': 'size', '*plugged-memory': 'size' } } 1280b495ec6cSPhilippe Mathieu-Daudé 1281b495ec6cSPhilippe Mathieu-Daudé## 1282b495ec6cSPhilippe Mathieu-Daudé# @query-memory-size-summary: 1283b495ec6cSPhilippe Mathieu-Daudé# 1284a937b6aaSMarkus Armbruster# Return the amount of initially allocated and present hotpluggable 1285a937b6aaSMarkus Armbruster# (if enabled) memory in bytes. 1286b495ec6cSPhilippe Mathieu-Daudé# 1287b495ec6cSPhilippe Mathieu-Daudé# Example: 1288b495ec6cSPhilippe Mathieu-Daudé# 1289b495ec6cSPhilippe Mathieu-Daudé# -> { "execute": "query-memory-size-summary" } 1290b495ec6cSPhilippe Mathieu-Daudé# <- { "return": { "base-memory": 4294967296, "plugged-memory": 0 } } 1291b495ec6cSPhilippe Mathieu-Daudé# 12929bc6e893SMarkus Armbruster# Since: 2.11 1293b495ec6cSPhilippe Mathieu-Daudé## 1294b495ec6cSPhilippe Mathieu-Daudé{ 'command': 'query-memory-size-summary', 'returns': 'MemoryInfo' } 1295b495ec6cSPhilippe Mathieu-Daudé 1296b495ec6cSPhilippe Mathieu-Daudé## 1297b495ec6cSPhilippe Mathieu-Daudé# @PCDIMMDeviceInfo: 1298b495ec6cSPhilippe Mathieu-Daudé# 1299b495ec6cSPhilippe Mathieu-Daudé# PCDIMMDevice state information 1300b495ec6cSPhilippe Mathieu-Daudé# 1301b495ec6cSPhilippe Mathieu-Daudé# @id: device's ID 1302b495ec6cSPhilippe Mathieu-Daudé# 1303b495ec6cSPhilippe Mathieu-Daudé# @addr: physical address, where device is mapped 1304b495ec6cSPhilippe Mathieu-Daudé# 1305b495ec6cSPhilippe Mathieu-Daudé# @size: size of memory that the device provides 1306b495ec6cSPhilippe Mathieu-Daudé# 1307b495ec6cSPhilippe Mathieu-Daudé# @slot: slot number at which device is plugged in 1308b495ec6cSPhilippe Mathieu-Daudé# 1309b495ec6cSPhilippe Mathieu-Daudé# @node: NUMA node number where device is plugged in 1310b495ec6cSPhilippe Mathieu-Daudé# 1311b495ec6cSPhilippe Mathieu-Daudé# @memdev: memory backend linked with device 1312b495ec6cSPhilippe Mathieu-Daudé# 1313b495ec6cSPhilippe Mathieu-Daudé# @hotplugged: true if device was hotplugged 1314b495ec6cSPhilippe Mathieu-Daudé# 1315a937b6aaSMarkus Armbruster# @hotpluggable: true if device if could be added/removed while 1316a937b6aaSMarkus Armbruster# machine is running 1317b495ec6cSPhilippe Mathieu-Daudé# 1318b495ec6cSPhilippe Mathieu-Daudé# Since: 2.1 1319b495ec6cSPhilippe Mathieu-Daudé## 1320b495ec6cSPhilippe Mathieu-Daudé{ 'struct': 'PCDIMMDeviceInfo', 1321b495ec6cSPhilippe Mathieu-Daudé 'data': { '*id': 'str', 1322b495ec6cSPhilippe Mathieu-Daudé 'addr': 'int', 1323b495ec6cSPhilippe Mathieu-Daudé 'size': 'int', 1324b495ec6cSPhilippe Mathieu-Daudé 'slot': 'int', 1325b495ec6cSPhilippe Mathieu-Daudé 'node': 'int', 1326b495ec6cSPhilippe Mathieu-Daudé 'memdev': 'str', 1327b495ec6cSPhilippe Mathieu-Daudé 'hotplugged': 'bool', 1328b495ec6cSPhilippe Mathieu-Daudé 'hotpluggable': 'bool' 1329b495ec6cSPhilippe Mathieu-Daudé } 1330b495ec6cSPhilippe Mathieu-Daudé} 1331b495ec6cSPhilippe Mathieu-Daudé 1332b495ec6cSPhilippe Mathieu-Daudé## 1333b495ec6cSPhilippe Mathieu-Daudé# @VirtioPMEMDeviceInfo: 1334b495ec6cSPhilippe Mathieu-Daudé# 1335b495ec6cSPhilippe Mathieu-Daudé# VirtioPMEM state information 1336b495ec6cSPhilippe Mathieu-Daudé# 1337b495ec6cSPhilippe Mathieu-Daudé# @id: device's ID 1338b495ec6cSPhilippe Mathieu-Daudé# 1339b495ec6cSPhilippe Mathieu-Daudé# @memaddr: physical address in memory, where device is mapped 1340b495ec6cSPhilippe Mathieu-Daudé# 1341b495ec6cSPhilippe Mathieu-Daudé# @size: size of memory that the device provides 1342b495ec6cSPhilippe Mathieu-Daudé# 1343b495ec6cSPhilippe Mathieu-Daudé# @memdev: memory backend linked with device 1344b495ec6cSPhilippe Mathieu-Daudé# 1345b495ec6cSPhilippe Mathieu-Daudé# Since: 4.1 1346b495ec6cSPhilippe Mathieu-Daudé## 1347b495ec6cSPhilippe Mathieu-Daudé{ 'struct': 'VirtioPMEMDeviceInfo', 1348b495ec6cSPhilippe Mathieu-Daudé 'data': { '*id': 'str', 1349b495ec6cSPhilippe Mathieu-Daudé 'memaddr': 'size', 1350b495ec6cSPhilippe Mathieu-Daudé 'size': 'size', 1351b495ec6cSPhilippe Mathieu-Daudé 'memdev': 'str' 1352b495ec6cSPhilippe Mathieu-Daudé } 1353b495ec6cSPhilippe Mathieu-Daudé} 1354b495ec6cSPhilippe Mathieu-Daudé 1355b495ec6cSPhilippe Mathieu-Daudé## 1356b495ec6cSPhilippe Mathieu-Daudé# @VirtioMEMDeviceInfo: 1357b495ec6cSPhilippe Mathieu-Daudé# 1358b495ec6cSPhilippe Mathieu-Daudé# VirtioMEMDevice state information 1359b495ec6cSPhilippe Mathieu-Daudé# 1360b495ec6cSPhilippe Mathieu-Daudé# @id: device's ID 1361b495ec6cSPhilippe Mathieu-Daudé# 1362b495ec6cSPhilippe Mathieu-Daudé# @memaddr: physical address in memory, where device is mapped 1363b495ec6cSPhilippe Mathieu-Daudé# 1364b495ec6cSPhilippe Mathieu-Daudé# @requested-size: the user requested size of the device 1365b495ec6cSPhilippe Mathieu-Daudé# 1366b495ec6cSPhilippe Mathieu-Daudé# @size: the (current) size of memory that the device provides 1367b495ec6cSPhilippe Mathieu-Daudé# 1368b495ec6cSPhilippe Mathieu-Daudé# @max-size: the maximum size of memory that the device can provide 1369b495ec6cSPhilippe Mathieu-Daudé# 1370b495ec6cSPhilippe Mathieu-Daudé# @block-size: the block size of memory that the device provides 1371b495ec6cSPhilippe Mathieu-Daudé# 1372b495ec6cSPhilippe Mathieu-Daudé# @node: NUMA node number where device is assigned to 1373b495ec6cSPhilippe Mathieu-Daudé# 1374b495ec6cSPhilippe Mathieu-Daudé# @memdev: memory backend linked with the region 1375b495ec6cSPhilippe Mathieu-Daudé# 1376b495ec6cSPhilippe Mathieu-Daudé# Since: 5.1 1377b495ec6cSPhilippe Mathieu-Daudé## 1378b495ec6cSPhilippe Mathieu-Daudé{ 'struct': 'VirtioMEMDeviceInfo', 1379b495ec6cSPhilippe Mathieu-Daudé 'data': { '*id': 'str', 1380b495ec6cSPhilippe Mathieu-Daudé 'memaddr': 'size', 1381b495ec6cSPhilippe Mathieu-Daudé 'requested-size': 'size', 1382b495ec6cSPhilippe Mathieu-Daudé 'size': 'size', 1383b495ec6cSPhilippe Mathieu-Daudé 'max-size': 'size', 1384b495ec6cSPhilippe Mathieu-Daudé 'block-size': 'size', 1385b495ec6cSPhilippe Mathieu-Daudé 'node': 'int', 1386b495ec6cSPhilippe Mathieu-Daudé 'memdev': 'str' 1387b495ec6cSPhilippe Mathieu-Daudé } 1388b495ec6cSPhilippe Mathieu-Daudé} 1389b495ec6cSPhilippe Mathieu-Daudé 1390b495ec6cSPhilippe Mathieu-Daudé## 1391a7c565a9SYang Zhong# @SgxEPCDeviceInfo: 1392a7c565a9SYang Zhong# 1393a7c565a9SYang Zhong# Sgx EPC state information 1394a7c565a9SYang Zhong# 1395a7c565a9SYang Zhong# @id: device's ID 1396a7c565a9SYang Zhong# 1397a7c565a9SYang Zhong# @memaddr: physical address in memory, where device is mapped 1398a7c565a9SYang Zhong# 1399a7c565a9SYang Zhong# @size: size of memory that the device provides 1400a7c565a9SYang Zhong# 1401a7c565a9SYang Zhong# @memdev: memory backend linked with device 1402a7c565a9SYang Zhong# 1403a66bd91fSYang Zhong# @node: the numa node (Since: 7.0) 140411058123SYang Zhong# 1405a7c565a9SYang Zhong# Since: 6.2 1406a7c565a9SYang Zhong## 1407a7c565a9SYang Zhong{ 'struct': 'SgxEPCDeviceInfo', 1408a7c565a9SYang Zhong 'data': { '*id': 'str', 1409a7c565a9SYang Zhong 'memaddr': 'size', 1410a7c565a9SYang Zhong 'size': 'size', 141111058123SYang Zhong 'node': 'int', 1412a7c565a9SYang Zhong 'memdev': 'str' 1413a7c565a9SYang Zhong } 1414a7c565a9SYang Zhong} 1415a7c565a9SYang Zhong 1416a7c565a9SYang Zhong## 141716dff2f9SMaciej S. Szmigiero# @HvBalloonDeviceInfo: 141816dff2f9SMaciej S. Szmigiero# 141916dff2f9SMaciej S. Szmigiero# hv-balloon provided memory state information 142016dff2f9SMaciej S. Szmigiero# 142116dff2f9SMaciej S. Szmigiero# @id: device's ID 142216dff2f9SMaciej S. Szmigiero# 142316dff2f9SMaciej S. Szmigiero# @memaddr: physical address in memory, where device is mapped 142416dff2f9SMaciej S. Szmigiero# 142516dff2f9SMaciej S. Szmigiero# @max-size: the maximum size of memory that the device can provide 142616dff2f9SMaciej S. Szmigiero# 142716dff2f9SMaciej S. Szmigiero# @memdev: memory backend linked with device 142816dff2f9SMaciej S. Szmigiero# 142916dff2f9SMaciej S. Szmigiero# Since: 8.2 143016dff2f9SMaciej S. Szmigiero## 143116dff2f9SMaciej S. Szmigiero{ 'struct': 'HvBalloonDeviceInfo', 143216dff2f9SMaciej S. Szmigiero 'data': { '*id': 'str', 143316dff2f9SMaciej S. Szmigiero '*memaddr': 'size', 143416dff2f9SMaciej S. Szmigiero 'max-size': 'size', 143516dff2f9SMaciej S. Szmigiero '*memdev': 'str' 143616dff2f9SMaciej S. Szmigiero } 143716dff2f9SMaciej S. Szmigiero} 143816dff2f9SMaciej S. Szmigiero 143916dff2f9SMaciej S. Szmigiero## 1440db6a252bSMarkus Armbruster# @MemoryDeviceInfoKind: 1441db6a252bSMarkus Armbruster# 144286bf13aeSMarkus Armbruster# @nvdimm: since 2.12 144386bf13aeSMarkus Armbruster# 144486bf13aeSMarkus Armbruster# @virtio-pmem: since 4.1 144586bf13aeSMarkus Armbruster# 144686bf13aeSMarkus Armbruster# @virtio-mem: since 5.1 144786bf13aeSMarkus Armbruster# 144886bf13aeSMarkus Armbruster# @sgx-epc: since 6.2. 144986bf13aeSMarkus Armbruster# 145016dff2f9SMaciej S. Szmigiero# @hv-balloon: since 8.2. 145116dff2f9SMaciej S. Szmigiero# 1452db6a252bSMarkus Armbruster# Since: 2.1 1453db6a252bSMarkus Armbruster## 1454db6a252bSMarkus Armbruster{ 'enum': 'MemoryDeviceInfoKind', 145516dff2f9SMaciej S. Szmigiero 'data': [ 'dimm', 'nvdimm', 'virtio-pmem', 'virtio-mem', 'sgx-epc', 145616dff2f9SMaciej S. Szmigiero 'hv-balloon' ] } 1457db6a252bSMarkus Armbruster 1458db6a252bSMarkus Armbruster## 1459db6a252bSMarkus Armbruster# @PCDIMMDeviceInfoWrapper: 1460db6a252bSMarkus Armbruster# 14612fecccbcSMarkus Armbruster# @data: PCDIMMDevice state information 14622fecccbcSMarkus Armbruster# 1463db6a252bSMarkus Armbruster# Since: 2.1 1464db6a252bSMarkus Armbruster## 1465db6a252bSMarkus Armbruster{ 'struct': 'PCDIMMDeviceInfoWrapper', 1466db6a252bSMarkus Armbruster 'data': { 'data': 'PCDIMMDeviceInfo' } } 1467db6a252bSMarkus Armbruster 1468db6a252bSMarkus Armbruster## 1469db6a252bSMarkus Armbruster# @VirtioPMEMDeviceInfoWrapper: 1470db6a252bSMarkus Armbruster# 14712fecccbcSMarkus Armbruster# @data: VirtioPMEM state information 14722fecccbcSMarkus Armbruster# 1473db6a252bSMarkus Armbruster# Since: 2.1 1474db6a252bSMarkus Armbruster## 1475db6a252bSMarkus Armbruster{ 'struct': 'VirtioPMEMDeviceInfoWrapper', 1476db6a252bSMarkus Armbruster 'data': { 'data': 'VirtioPMEMDeviceInfo' } } 1477db6a252bSMarkus Armbruster 1478db6a252bSMarkus Armbruster## 1479db6a252bSMarkus Armbruster# @VirtioMEMDeviceInfoWrapper: 1480db6a252bSMarkus Armbruster# 14812fecccbcSMarkus Armbruster# @data: VirtioMEMDevice state information 14822fecccbcSMarkus Armbruster# 1483db6a252bSMarkus Armbruster# Since: 2.1 1484db6a252bSMarkus Armbruster## 1485db6a252bSMarkus Armbruster{ 'struct': 'VirtioMEMDeviceInfoWrapper', 1486db6a252bSMarkus Armbruster 'data': { 'data': 'VirtioMEMDeviceInfo' } } 1487db6a252bSMarkus Armbruster 1488db6a252bSMarkus Armbruster## 1489a7c565a9SYang Zhong# @SgxEPCDeviceInfoWrapper: 1490a7c565a9SYang Zhong# 14912fecccbcSMarkus Armbruster# @data: Sgx EPC state information 14922fecccbcSMarkus Armbruster# 1493a7c565a9SYang Zhong# Since: 6.2 1494a7c565a9SYang Zhong## 1495a7c565a9SYang Zhong{ 'struct': 'SgxEPCDeviceInfoWrapper', 1496a7c565a9SYang Zhong 'data': { 'data': 'SgxEPCDeviceInfo' } } 1497a7c565a9SYang Zhong 1498b495ec6cSPhilippe Mathieu-Daudé## 149916dff2f9SMaciej S. Szmigiero# @HvBalloonDeviceInfoWrapper: 150016dff2f9SMaciej S. Szmigiero# 15012fecccbcSMarkus Armbruster# @data: hv-balloon provided memory state information 15022fecccbcSMarkus Armbruster# 150316dff2f9SMaciej S. Szmigiero# Since: 8.2 150416dff2f9SMaciej S. Szmigiero## 150516dff2f9SMaciej S. Szmigiero{ 'struct': 'HvBalloonDeviceInfoWrapper', 150616dff2f9SMaciej S. Szmigiero 'data': { 'data': 'HvBalloonDeviceInfo' } } 150716dff2f9SMaciej S. Szmigiero 150816dff2f9SMaciej S. Szmigiero## 1509b495ec6cSPhilippe Mathieu-Daudé# @MemoryDeviceInfo: 1510b495ec6cSPhilippe Mathieu-Daudé# 1511b495ec6cSPhilippe Mathieu-Daudé# Union containing information about a memory device 1512b495ec6cSPhilippe Mathieu-Daudé# 151389a2273bSMarkus Armbruster# @type: memory device type 151489a2273bSMarkus Armbruster# 1515b495ec6cSPhilippe Mathieu-Daudé# Since: 2.1 1516b495ec6cSPhilippe Mathieu-Daudé## 1517b495ec6cSPhilippe Mathieu-Daudé{ 'union': 'MemoryDeviceInfo', 1518db6a252bSMarkus Armbruster 'base': { 'type': 'MemoryDeviceInfoKind' }, 1519db6a252bSMarkus Armbruster 'discriminator': 'type', 1520db6a252bSMarkus Armbruster 'data': { 'dimm': 'PCDIMMDeviceInfoWrapper', 1521db6a252bSMarkus Armbruster 'nvdimm': 'PCDIMMDeviceInfoWrapper', 1522db6a252bSMarkus Armbruster 'virtio-pmem': 'VirtioPMEMDeviceInfoWrapper', 1523a7c565a9SYang Zhong 'virtio-mem': 'VirtioMEMDeviceInfoWrapper', 152416dff2f9SMaciej S. Szmigiero 'sgx-epc': 'SgxEPCDeviceInfoWrapper', 152516dff2f9SMaciej S. Szmigiero 'hv-balloon': 'HvBalloonDeviceInfoWrapper' 1526b495ec6cSPhilippe Mathieu-Daudé } 1527b495ec6cSPhilippe Mathieu-Daudé} 1528b495ec6cSPhilippe Mathieu-Daudé 1529b495ec6cSPhilippe Mathieu-Daudé## 1530dfce81f1SSean Christopherson# @SgxEPC: 1531dfce81f1SSean Christopherson# 1532dfce81f1SSean Christopherson# Sgx EPC cmdline information 1533dfce81f1SSean Christopherson# 1534dfce81f1SSean Christopherson# @memdev: memory backend linked with device 1535dfce81f1SSean Christopherson# 1536a66bd91fSYang Zhong# @node: the numa node (Since: 7.0) 153711058123SYang Zhong# 1538dfce81f1SSean Christopherson# Since: 6.2 1539dfce81f1SSean Christopherson## 1540dfce81f1SSean Christopherson{ 'struct': 'SgxEPC', 154111058123SYang Zhong 'data': { 'memdev': 'str', 154211058123SYang Zhong 'node': 'int' 154311058123SYang Zhong } 154411058123SYang Zhong} 1545dfce81f1SSean Christopherson 1546dfce81f1SSean Christopherson## 1547dfce81f1SSean Christopherson# @SgxEPCProperties: 1548dfce81f1SSean Christopherson# 1549dfce81f1SSean Christopherson# SGX properties of machine types. 1550dfce81f1SSean Christopherson# 1551dfce81f1SSean Christopherson# @sgx-epc: list of ids of memory-backend-epc objects. 1552dfce81f1SSean Christopherson# 1553dfce81f1SSean Christopherson# Since: 6.2 1554dfce81f1SSean Christopherson## 1555dfce81f1SSean Christopherson{ 'struct': 'SgxEPCProperties', 1556dfce81f1SSean Christopherson 'data': { 'sgx-epc': ['SgxEPC'] } 1557dfce81f1SSean Christopherson} 1558dfce81f1SSean Christopherson 1559dfce81f1SSean Christopherson## 1560b495ec6cSPhilippe Mathieu-Daudé# @query-memory-devices: 1561b495ec6cSPhilippe Mathieu-Daudé# 1562b495ec6cSPhilippe Mathieu-Daudé# Lists available memory devices and their state 1563b495ec6cSPhilippe Mathieu-Daudé# 1564b495ec6cSPhilippe Mathieu-Daudé# Since: 2.1 1565b495ec6cSPhilippe Mathieu-Daudé# 1566b495ec6cSPhilippe Mathieu-Daudé# Example: 1567b495ec6cSPhilippe Mathieu-Daudé# 1568b495ec6cSPhilippe Mathieu-Daudé# -> { "execute": "query-memory-devices" } 1569b495ec6cSPhilippe Mathieu-Daudé# <- { "return": [ { "data": 1570b495ec6cSPhilippe Mathieu-Daudé# { "addr": 5368709120, 1571b495ec6cSPhilippe Mathieu-Daudé# "hotpluggable": true, 1572b495ec6cSPhilippe Mathieu-Daudé# "hotplugged": true, 1573b495ec6cSPhilippe Mathieu-Daudé# "id": "d1", 1574b495ec6cSPhilippe Mathieu-Daudé# "memdev": "/objects/memX", 1575b495ec6cSPhilippe Mathieu-Daudé# "node": 0, 1576b495ec6cSPhilippe Mathieu-Daudé# "size": 1073741824, 1577b495ec6cSPhilippe Mathieu-Daudé# "slot": 0}, 1578b495ec6cSPhilippe Mathieu-Daudé# "type": "dimm" 1579b495ec6cSPhilippe Mathieu-Daudé# } ] } 1580b495ec6cSPhilippe Mathieu-Daudé## 1581b495ec6cSPhilippe Mathieu-Daudé{ 'command': 'query-memory-devices', 'returns': ['MemoryDeviceInfo'] } 1582b495ec6cSPhilippe Mathieu-Daudé 1583b495ec6cSPhilippe Mathieu-Daudé## 1584b495ec6cSPhilippe Mathieu-Daudé# @MEMORY_DEVICE_SIZE_CHANGE: 1585b495ec6cSPhilippe Mathieu-Daudé# 1586a937b6aaSMarkus Armbruster# Emitted when the size of a memory device changes. Only emitted for 1587a937b6aaSMarkus Armbruster# memory devices that can actually change the size (e.g., virtio-mem 1588a937b6aaSMarkus Armbruster# due to guest action). 1589b495ec6cSPhilippe Mathieu-Daudé# 1590b495ec6cSPhilippe Mathieu-Daudé# @id: device's ID 1591d89dd28fSDavid Hildenbrand# 1592b495ec6cSPhilippe Mathieu-Daudé# @size: the new size of memory that the device provides 1593b495ec6cSPhilippe Mathieu-Daudé# 1594d89dd28fSDavid Hildenbrand# @qom-path: path to the device object in the QOM tree (since 6.2) 1595d89dd28fSDavid Hildenbrand# 1596b495ec6cSPhilippe Mathieu-Daudé# Note: this event is rate-limited. 1597b495ec6cSPhilippe Mathieu-Daudé# 1598b495ec6cSPhilippe Mathieu-Daudé# Since: 5.1 1599b495ec6cSPhilippe Mathieu-Daudé# 1600b495ec6cSPhilippe Mathieu-Daudé# Example: 1601b495ec6cSPhilippe Mathieu-Daudé# 1602b495ec6cSPhilippe Mathieu-Daudé# <- { "event": "MEMORY_DEVICE_SIZE_CHANGE", 1603dba673b9SVictor Toso# "data": { "id": "vm0", "size": 1073741824, 1604dba673b9SVictor Toso# "qom-path": "/machine/unattached/device[2]" }, 1605b495ec6cSPhilippe Mathieu-Daudé# "timestamp": { "seconds": 1588168529, "microseconds": 201316 } } 1606b495ec6cSPhilippe Mathieu-Daudé## 1607b495ec6cSPhilippe Mathieu-Daudé{ 'event': 'MEMORY_DEVICE_SIZE_CHANGE', 1608d89dd28fSDavid Hildenbrand 'data': { '*id': 'str', 'size': 'size', 'qom-path' : 'str'} } 1609b495ec6cSPhilippe Mathieu-Daudé 1610b495ec6cSPhilippe Mathieu-Daudé## 1611b495ec6cSPhilippe Mathieu-Daudé# @MEM_UNPLUG_ERROR: 1612b495ec6cSPhilippe Mathieu-Daudé# 1613b495ec6cSPhilippe Mathieu-Daudé# Emitted when memory hot unplug error occurs. 1614b495ec6cSPhilippe Mathieu-Daudé# 1615b495ec6cSPhilippe Mathieu-Daudé# @device: device name 1616b495ec6cSPhilippe Mathieu-Daudé# 1617b495ec6cSPhilippe Mathieu-Daudé# @msg: Informative message 1618b495ec6cSPhilippe Mathieu-Daudé# 1619d43f1670SDaniel Henrique Barboza# Features: 1620a937b6aaSMarkus Armbruster# 1621a937b6aaSMarkus Armbruster# @deprecated: This event is deprecated. Use 1622a937b6aaSMarkus Armbruster# @DEVICE_UNPLUG_GUEST_ERROR instead. 1623d43f1670SDaniel Henrique Barboza# 1624b495ec6cSPhilippe Mathieu-Daudé# Since: 2.4 1625b495ec6cSPhilippe Mathieu-Daudé# 1626b495ec6cSPhilippe Mathieu-Daudé# Example: 1627b495ec6cSPhilippe Mathieu-Daudé# 1628e8796ac4SVictor Toso# <- { "event": "MEM_UNPLUG_ERROR", 1629b495ec6cSPhilippe Mathieu-Daudé# "data": { "device": "dimm1", 1630b495ec6cSPhilippe Mathieu-Daudé# "msg": "acpi: device unplug for unsupported device" 1631b495ec6cSPhilippe Mathieu-Daudé# }, 1632b495ec6cSPhilippe Mathieu-Daudé# "timestamp": { "seconds": 1265044230, "microseconds": 450486 } } 1633b495ec6cSPhilippe Mathieu-Daudé## 1634b495ec6cSPhilippe Mathieu-Daudé{ 'event': 'MEM_UNPLUG_ERROR', 1635d43f1670SDaniel Henrique Barboza 'data': { 'device': 'str', 'msg': 'str' }, 1636d43f1670SDaniel Henrique Barboza 'features': ['deprecated'] } 16371e63fe68SPaolo Bonzini 16381e63fe68SPaolo Bonzini## 163997ec4d21SPaolo Bonzini# @BootConfiguration: 164097ec4d21SPaolo Bonzini# 164197ec4d21SPaolo Bonzini# Schema for virtual machine boot configuration. 164297ec4d21SPaolo Bonzini# 164397ec4d21SPaolo Bonzini# @order: Boot order (a=floppy, c=hard disk, d=CD-ROM, n=network) 164497ec4d21SPaolo Bonzini# 164597ec4d21SPaolo Bonzini# @once: Boot order to apply on first boot 164697ec4d21SPaolo Bonzini# 164797ec4d21SPaolo Bonzini# @menu: Whether to show a boot menu 164897ec4d21SPaolo Bonzini# 1649a937b6aaSMarkus Armbruster# @splash: The name of the file to be passed to the firmware as logo 1650a937b6aaSMarkus Armbruster# picture, if @menu is true. 165197ec4d21SPaolo Bonzini# 165297ec4d21SPaolo Bonzini# @splash-time: How long to show the logo picture, in milliseconds 165397ec4d21SPaolo Bonzini# 165497ec4d21SPaolo Bonzini# @reboot-timeout: Timeout before guest reboots after boot fails 165597ec4d21SPaolo Bonzini# 1656a937b6aaSMarkus Armbruster# @strict: Whether to attempt booting from devices not included in the 1657a937b6aaSMarkus Armbruster# boot order 165897ec4d21SPaolo Bonzini# 165997ec4d21SPaolo Bonzini# Since: 7.1 166097ec4d21SPaolo Bonzini## 166197ec4d21SPaolo Bonzini{ 'struct': 'BootConfiguration', 'data': { 166297ec4d21SPaolo Bonzini '*order': 'str', 166397ec4d21SPaolo Bonzini '*once': 'str', 166497ec4d21SPaolo Bonzini '*menu': 'bool', 166597ec4d21SPaolo Bonzini '*splash': 'str', 166697ec4d21SPaolo Bonzini '*splash-time': 'int', 166797ec4d21SPaolo Bonzini '*reboot-timeout': 'int', 166897ec4d21SPaolo Bonzini '*strict': 'bool' } } 166997ec4d21SPaolo Bonzini 167097ec4d21SPaolo Bonzini## 16711e63fe68SPaolo Bonzini# @SMPConfiguration: 16721e63fe68SPaolo Bonzini# 1673a937b6aaSMarkus Armbruster# Schema for CPU topology configuration. A missing value lets QEMU 1674a937b6aaSMarkus Armbruster# figure out a suitable value based on the ones that are provided. 16751e63fe68SPaolo Bonzini# 16763da4aef8SNina Schoetterl-Glausch# The members other than @cpus and @maxcpus define a topology of 16773da4aef8SNina Schoetterl-Glausch# containers. 16783da4aef8SNina Schoetterl-Glausch# 16793da4aef8SNina Schoetterl-Glausch# The ordering from highest/coarsest to lowest/finest is: 16805de1aff2SPierre Morel# @drawers, @books, @sockets, @dies, @clusters, @cores, @threads. 16813da4aef8SNina Schoetterl-Glausch# 16823da4aef8SNina Schoetterl-Glausch# Different architectures support different subsets of topology 16833da4aef8SNina Schoetterl-Glausch# containers. 16843da4aef8SNina Schoetterl-Glausch# 16853da4aef8SNina Schoetterl-Glausch# For example, s390x does not have clusters and dies, and the socket 16863da4aef8SNina Schoetterl-Glausch# is the parent container of cores. 16873da4aef8SNina Schoetterl-Glausch# 16881e63fe68SPaolo Bonzini# @cpus: number of virtual CPUs in the virtual machine 16891e63fe68SPaolo Bonzini# 1690a937b6aaSMarkus Armbruster# @maxcpus: maximum number of hotpluggable virtual CPUs in the virtual 1691a937b6aaSMarkus Armbruster# machine 16921e63fe68SPaolo Bonzini# 16935de1aff2SPierre Morel# @drawers: number of drawers in the CPU topology (since 8.2) 16945de1aff2SPierre Morel# 16955de1aff2SPierre Morel# @books: number of books in the CPU topology (since 8.2) 16965de1aff2SPierre Morel# 16975de1aff2SPierre Morel# @sockets: number of sockets per parent container 16983da4aef8SNina Schoetterl-Glausch# 16993da4aef8SNina Schoetterl-Glausch# @dies: number of dies per parent container 17003da4aef8SNina Schoetterl-Glausch# 17013da4aef8SNina Schoetterl-Glausch# @clusters: number of clusters per parent container (since 7.0) 17023da4aef8SNina Schoetterl-Glausch# 17038ec0a463SZhao Liu# @modules: number of modules per parent container (since 9.1) 17048ec0a463SZhao Liu# 17053da4aef8SNina Schoetterl-Glausch# @cores: number of cores per parent container 17063da4aef8SNina Schoetterl-Glausch# 17073da4aef8SNina Schoetterl-Glausch# @threads: number of threads per core 17083da4aef8SNina Schoetterl-Glausch# 17091e63fe68SPaolo Bonzini# Since: 6.1 17101e63fe68SPaolo Bonzini## 17111e63fe68SPaolo Bonzini{ 'struct': 'SMPConfiguration', 'data': { 17121e63fe68SPaolo Bonzini '*cpus': 'int', 17135de1aff2SPierre Morel '*drawers': 'int', 17145de1aff2SPierre Morel '*books': 'int', 17151e63fe68SPaolo Bonzini '*sockets': 'int', 17161e63fe68SPaolo Bonzini '*dies': 'int', 1717864c3b5cSYanan Wang '*clusters': 'int', 17188ec0a463SZhao Liu '*modules': 'int', 17191e63fe68SPaolo Bonzini '*cores': 'int', 17201e63fe68SPaolo Bonzini '*threads': 'int', 17211e63fe68SPaolo Bonzini '*maxcpus': 'int' } } 1722dd98234cSDaniel P. Berrangé 1723dd98234cSDaniel P. Berrangé## 172491f2fa70SDaniel P. Berrangé# @x-query-irq: 172591f2fa70SDaniel P. Berrangé# 172691f2fa70SDaniel P. Berrangé# Query interrupt statistics 172791f2fa70SDaniel P. Berrangé# 17288c0bae5aSMarkus Armbruster# Features: 1729a937b6aaSMarkus Armbruster# 17308c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 17318c0bae5aSMarkus Armbruster# 173291f2fa70SDaniel P. Berrangé# Returns: interrupt statistics 173391f2fa70SDaniel P. Berrangé# 173491f2fa70SDaniel P. Berrangé# Since: 6.2 173591f2fa70SDaniel P. Berrangé## 173691f2fa70SDaniel P. Berrangé{ 'command': 'x-query-irq', 17378c0bae5aSMarkus Armbruster 'returns': 'HumanReadableText', 17388c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 173991f2fa70SDaniel P. Berrangé 174091f2fa70SDaniel P. Berrangé## 17413a841ab5SDaniel P. Berrangé# @x-query-jit: 17423a841ab5SDaniel P. Berrangé# 17433a841ab5SDaniel P. Berrangé# Query TCG compiler statistics 17443a841ab5SDaniel P. Berrangé# 17458c0bae5aSMarkus Armbruster# Features: 1746a937b6aaSMarkus Armbruster# 17478c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 17488c0bae5aSMarkus Armbruster# 17493a841ab5SDaniel P. Berrangé# Returns: TCG compiler statistics 17503a841ab5SDaniel P. Berrangé# 17513a841ab5SDaniel P. Berrangé# Since: 6.2 17523a841ab5SDaniel P. Berrangé## 17533a841ab5SDaniel P. Berrangé{ 'command': 'x-query-jit', 17543a841ab5SDaniel P. Berrangé 'returns': 'HumanReadableText', 17558c0bae5aSMarkus Armbruster 'if': 'CONFIG_TCG', 17568c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 17573a841ab5SDaniel P. Berrangé 17583a841ab5SDaniel P. Berrangé## 17591b8ae799SDaniel P. Berrangé# @x-query-numa: 17601b8ae799SDaniel P. Berrangé# 17611b8ae799SDaniel P. Berrangé# Query NUMA topology information 17621b8ae799SDaniel P. Berrangé# 17638c0bae5aSMarkus Armbruster# Features: 1764a937b6aaSMarkus Armbruster# 17658c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 17668c0bae5aSMarkus Armbruster# 17671b8ae799SDaniel P. Berrangé# Returns: topology information 17681b8ae799SDaniel P. Berrangé# 17691b8ae799SDaniel P. Berrangé# Since: 6.2 17701b8ae799SDaniel P. Berrangé## 17711b8ae799SDaniel P. Berrangé{ 'command': 'x-query-numa', 17728c0bae5aSMarkus Armbruster 'returns': 'HumanReadableText', 17738c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 17741b8ae799SDaniel P. Berrangé 17751b8ae799SDaniel P. Berrangé## 1776b6a7f3e0SDaniel P. Berrangé# @x-query-opcount: 1777b6a7f3e0SDaniel P. Berrangé# 1778b6a7f3e0SDaniel P. Berrangé# Query TCG opcode counters 1779b6a7f3e0SDaniel P. Berrangé# 17808c0bae5aSMarkus Armbruster# Features: 1781a937b6aaSMarkus Armbruster# 17828c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 17838c0bae5aSMarkus Armbruster# 1784b6a7f3e0SDaniel P. Berrangé# Returns: TCG opcode counters 1785b6a7f3e0SDaniel P. Berrangé# 1786b6a7f3e0SDaniel P. Berrangé# Since: 6.2 1787b6a7f3e0SDaniel P. Berrangé## 1788b6a7f3e0SDaniel P. Berrangé{ 'command': 'x-query-opcount', 1789b6a7f3e0SDaniel P. Berrangé 'returns': 'HumanReadableText', 17908c0bae5aSMarkus Armbruster 'if': 'CONFIG_TCG', 17918c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 1792b6a7f3e0SDaniel P. Berrangé 1793b6a7f3e0SDaniel P. Berrangé## 1794ca411b7cSDaniel P. Berrangé# @x-query-ramblock: 1795ca411b7cSDaniel P. Berrangé# 1796ca411b7cSDaniel P. Berrangé# Query system ramblock information 1797ca411b7cSDaniel P. Berrangé# 17988c0bae5aSMarkus Armbruster# Features: 1799a937b6aaSMarkus Armbruster# 18008c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 18018c0bae5aSMarkus Armbruster# 1802ca411b7cSDaniel P. Berrangé# Returns: system ramblock information 1803ca411b7cSDaniel P. Berrangé# 1804ca411b7cSDaniel P. Berrangé# Since: 6.2 1805ca411b7cSDaniel P. Berrangé## 1806ca411b7cSDaniel P. Berrangé{ 'command': 'x-query-ramblock', 18078c0bae5aSMarkus Armbruster 'returns': 'HumanReadableText', 18088c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 1809ca411b7cSDaniel P. Berrangé 1810ca411b7cSDaniel P. Berrangé## 1811dd98234cSDaniel P. Berrangé# @x-query-roms: 1812dd98234cSDaniel P. Berrangé# 1813dd98234cSDaniel P. Berrangé# Query information on the registered ROMS 1814dd98234cSDaniel P. Berrangé# 18158c0bae5aSMarkus Armbruster# Features: 1816a937b6aaSMarkus Armbruster# 18178c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 18188c0bae5aSMarkus Armbruster# 1819dd98234cSDaniel P. Berrangé# Returns: registered ROMs 1820dd98234cSDaniel P. Berrangé# 1821dd98234cSDaniel P. Berrangé# Since: 6.2 1822dd98234cSDaniel P. Berrangé## 1823dd98234cSDaniel P. Berrangé{ 'command': 'x-query-roms', 18248c0bae5aSMarkus Armbruster 'returns': 'HumanReadableText', 18258c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 1826fc309207SDaniel P. Berrangé 1827fc309207SDaniel P. Berrangé## 1828fc309207SDaniel P. Berrangé# @x-query-usb: 1829fc309207SDaniel P. Berrangé# 1830fc309207SDaniel P. Berrangé# Query information on the USB devices 1831fc309207SDaniel P. Berrangé# 18328c0bae5aSMarkus Armbruster# Features: 1833a937b6aaSMarkus Armbruster# 18348c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 18358c0bae5aSMarkus Armbruster# 1836fc309207SDaniel P. Berrangé# Returns: USB device information 1837fc309207SDaniel P. Berrangé# 1838fc309207SDaniel P. Berrangé# Since: 6.2 1839fc309207SDaniel P. Berrangé## 1840fc309207SDaniel P. Berrangé{ 'command': 'x-query-usb', 18418c0bae5aSMarkus Armbruster 'returns': 'HumanReadableText', 18428c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 1843bdf54a9aSEduardo Habkost 1844bdf54a9aSEduardo Habkost## 1845bdf54a9aSEduardo Habkost# @SmbiosEntryPointType: 1846bdf54a9aSEduardo Habkost# 1847bdf54a9aSEduardo Habkost# @32: SMBIOS version 2.1 (32-bit) Entry Point 1848bdf54a9aSEduardo Habkost# 1849bdf54a9aSEduardo Habkost# @64: SMBIOS version 3.0 (64-bit) Entry Point 1850bdf54a9aSEduardo Habkost# 18514901b80eSIgor Mammedov# @auto: Either 2.x or 3.x SMBIOS version, 2.x if configuration can be 18524901b80eSIgor Mammedov# described by it and 3.x otherwise (since: 9.0) 18534901b80eSIgor Mammedov# 1854bdf54a9aSEduardo Habkost# Since: 7.0 1855bdf54a9aSEduardo Habkost## 1856bdf54a9aSEduardo Habkost{ 'enum': 'SmbiosEntryPointType', 18574901b80eSIgor Mammedov 'data': [ '32', '64', 'auto' ] } 1858ce9d03fbSPaolo Bonzini 1859ce9d03fbSPaolo Bonzini## 1860ce9d03fbSPaolo Bonzini# @MemorySizeConfiguration: 1861ce9d03fbSPaolo Bonzini# 1862ce9d03fbSPaolo Bonzini# Schema for memory size configuration. 1863ce9d03fbSPaolo Bonzini# 1864ce9d03fbSPaolo Bonzini# @size: memory size in bytes 1865ce9d03fbSPaolo Bonzini# 1866ce9d03fbSPaolo Bonzini# @max-size: maximum hotpluggable memory size in bytes 1867ce9d03fbSPaolo Bonzini# 1868ce9d03fbSPaolo Bonzini# @slots: number of available memory slots for hotplug 1869ce9d03fbSPaolo Bonzini# 1870ce9d03fbSPaolo Bonzini# Since: 7.1 1871ce9d03fbSPaolo Bonzini## 1872ce9d03fbSPaolo Bonzini{ 'struct': 'MemorySizeConfiguration', 'data': { 1873ce9d03fbSPaolo Bonzini '*size': 'size', 1874ce9d03fbSPaolo Bonzini '*max-size': 'size', 1875ce9d03fbSPaolo Bonzini '*slots': 'uint64' } } 1876bf353ad5SDaniel Henrique Barboza 1877bf353ad5SDaniel Henrique Barboza## 1878bf353ad5SDaniel Henrique Barboza# @dumpdtb: 1879bf353ad5SDaniel Henrique Barboza# 1880bf353ad5SDaniel Henrique Barboza# Save the FDT in dtb format. 1881bf353ad5SDaniel Henrique Barboza# 1882bf353ad5SDaniel Henrique Barboza# @filename: name of the dtb file to be created 1883bf353ad5SDaniel Henrique Barboza# 1884bf353ad5SDaniel Henrique Barboza# Since: 7.2 1885bf353ad5SDaniel Henrique Barboza# 1886bf353ad5SDaniel Henrique Barboza# Example: 1887a937b6aaSMarkus Armbruster# 188837fa48a4SMarkus Armbruster# -> { "execute": "dumpdtb" } 1889bf353ad5SDaniel Henrique Barboza# "arguments": { "filename": "fdt.dtb" } } 189037fa48a4SMarkus Armbruster# <- { "return": {} } 1891bf353ad5SDaniel Henrique Barboza## 1892bf353ad5SDaniel Henrique Barboza{ 'command': 'dumpdtb', 1893bf353ad5SDaniel Henrique Barboza 'data': { 'filename': 'str' }, 1894bf353ad5SDaniel Henrique Barboza 'if': 'CONFIG_FDT' } 1895