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# 27bc2e34e3SMarkus Armbruster# @loongarch64: since 7.1 28bc2e34e3SMarkus Armbruster# 29d461c279SJohn Snow# .. note:: The resulting QMP strings can be appended to the 3001bed0ffSMarkus Armbruster# "qemu-system-" prefix to produce the corresponding QEMU 3101bed0ffSMarkus Armbruster# executable name. This is true even for "qemu-system-x86_64". 32ffaee83bSMarkus Armbruster# 33ffaee83bSMarkus Armbruster# Since: 3.0 34ffaee83bSMarkus Armbruster## 35ffaee83bSMarkus Armbruster{ 'enum' : 'SysEmuTarget', 3601d01edcSPhilippe Mathieu-Daudé 'data' : [ 'aarch64', 'alpha', 'arm', 'avr', 'hppa', 'i386', 37a8a506c3SXiaojuan Yang 'loongarch64', 'm68k', 'microblaze', 'microblazeel', 'mips', 'mips64', 386c301485SPhilippe Mathieu-Daudé 'mips64el', 'mipsel', 'or1k', 'ppc', 39c8c35e5fSYoshinori Sato 'ppc64', 'riscv32', 'riscv64', 'rx', 's390x', 'sh4', 40*51cdb680SThomas Huth 'sh4eb', 'sparc', 'sparc64', 'tricore', 41ffaee83bSMarkus Armbruster 'x86_64', 'xtensa', 'xtensaeb' ] } 428ac25c84SMarkus Armbruster 438ac25c84SMarkus Armbruster## 4432cfefb9SMarkus Armbruster# @S390CpuState: 458ac25c84SMarkus Armbruster# 46a937b6aaSMarkus Armbruster# An enumeration of cpu states that can be assumed by a virtual S390 47a937b6aaSMarkus Armbruster# CPU 488ac25c84SMarkus Armbruster# 498ac25c84SMarkus Armbruster# Since: 2.12 508ac25c84SMarkus Armbruster## 5132cfefb9SMarkus Armbruster{ 'enum': 'S390CpuState', 528ac25c84SMarkus Armbruster 'data': [ 'uninitialized', 'stopped', 'check-stop', 'operating', 'load' ] } 538ac25c84SMarkus Armbruster 548ac25c84SMarkus Armbruster## 558ac25c84SMarkus Armbruster# @CpuInfoS390: 568ac25c84SMarkus Armbruster# 578ac25c84SMarkus Armbruster# Additional information about a virtual S390 CPU 588ac25c84SMarkus Armbruster# 598ac25c84SMarkus Armbruster# @cpu-state: the virtual CPU's state 608ac25c84SMarkus Armbruster# 61ad2d1afcSPierre Morel# @dedicated: the virtual CPU's dedication (since 8.2) 62ad2d1afcSPierre Morel# 63ad2d1afcSPierre Morel# @entitlement: the virtual CPU's entitlement (since 8.2) 64ad2d1afcSPierre Morel# 658ac25c84SMarkus Armbruster# Since: 2.12 668ac25c84SMarkus Armbruster## 67ad2d1afcSPierre Morel{ 'struct': 'CpuInfoS390', 6832cfefb9SMarkus Armbruster 'data': { 'cpu-state': 'S390CpuState', 69ad2d1afcSPierre Morel '*dedicated': 'bool', 7032cfefb9SMarkus Armbruster '*entitlement': 'S390CpuEntitlement' } } 718ac25c84SMarkus Armbruster 728ac25c84SMarkus Armbruster## 738ac25c84SMarkus Armbruster# @CpuInfoFast: 748ac25c84SMarkus Armbruster# 758ac25c84SMarkus Armbruster# Information about a virtual CPU 768ac25c84SMarkus Armbruster# 778ac25c84SMarkus Armbruster# @cpu-index: index of the virtual CPU 788ac25c84SMarkus Armbruster# 798ac25c84SMarkus Armbruster# @qom-path: path to the CPU object in the QOM tree 808ac25c84SMarkus Armbruster# 818ac25c84SMarkus Armbruster# @thread-id: ID of the underlying host thread 828ac25c84SMarkus Armbruster# 833da4aef8SNina Schoetterl-Glausch# @props: properties associated with a virtual CPU, e.g. the socket id 848ac25c84SMarkus Armbruster# 858ac25c84SMarkus Armbruster# @target: the QEMU system emulation target, which determines which 868ac25c84SMarkus Armbruster# additional fields will be listed (since 3.0) 878ac25c84SMarkus Armbruster# 888ac25c84SMarkus Armbruster# Since: 2.12 898ac25c84SMarkus Armbruster## 908ac25c84SMarkus Armbruster{ 'union' : 'CpuInfoFast', 918ac25c84SMarkus Armbruster 'base' : { 'cpu-index' : 'int', 928ac25c84SMarkus Armbruster 'qom-path' : 'str', 938ac25c84SMarkus Armbruster 'thread-id' : 'int', 948ac25c84SMarkus Armbruster '*props' : 'CpuInstanceProperties', 958ac25c84SMarkus Armbruster 'target' : 'SysEmuTarget' }, 968ac25c84SMarkus Armbruster 'discriminator' : 'target', 978ac25c84SMarkus Armbruster 'data' : { 's390x' : 'CpuInfoS390' } } 988ac25c84SMarkus Armbruster 998ac25c84SMarkus Armbruster## 1008ac25c84SMarkus Armbruster# @query-cpus-fast: 1018ac25c84SMarkus Armbruster# 1028af54b91SDaniel P. Berrangé# Returns information about all virtual CPUs. 1038ac25c84SMarkus Armbruster# 1048ac25c84SMarkus Armbruster# Returns: list of @CpuInfoFast 1058ac25c84SMarkus Armbruster# 1068ac25c84SMarkus Armbruster# Since: 2.12 1078ac25c84SMarkus Armbruster# 10814b48aaaSJohn Snow# .. qmp-example:: 1098ac25c84SMarkus Armbruster# 1108ac25c84SMarkus Armbruster# -> { "execute": "query-cpus-fast" } 1118ac25c84SMarkus Armbruster# <- { "return": [ 1128ac25c84SMarkus Armbruster# { 1138ac25c84SMarkus Armbruster# "thread-id": 25627, 1148ac25c84SMarkus Armbruster# "props": { 1158ac25c84SMarkus Armbruster# "core-id": 0, 1168ac25c84SMarkus Armbruster# "thread-id": 0, 1178ac25c84SMarkus Armbruster# "socket-id": 0 1188ac25c84SMarkus Armbruster# }, 1198ac25c84SMarkus Armbruster# "qom-path": "/machine/unattached/device[0]", 1208ac25c84SMarkus Armbruster# "target":"x86_64", 1218ac25c84SMarkus Armbruster# "cpu-index": 0 1228ac25c84SMarkus Armbruster# }, 1238ac25c84SMarkus Armbruster# { 1248ac25c84SMarkus Armbruster# "thread-id": 25628, 1258ac25c84SMarkus Armbruster# "props": { 1268ac25c84SMarkus Armbruster# "core-id": 0, 1278ac25c84SMarkus Armbruster# "thread-id": 0, 1288ac25c84SMarkus Armbruster# "socket-id": 1 1298ac25c84SMarkus Armbruster# }, 1308ac25c84SMarkus Armbruster# "qom-path": "/machine/unattached/device[2]", 1318ac25c84SMarkus Armbruster# "target":"x86_64", 1328ac25c84SMarkus Armbruster# "cpu-index": 1 1338ac25c84SMarkus Armbruster# } 1348ac25c84SMarkus Armbruster# ] 1358ac25c84SMarkus Armbruster# } 1368ac25c84SMarkus Armbruster## 1378ac25c84SMarkus Armbruster{ 'command': 'query-cpus-fast', 'returns': [ 'CpuInfoFast' ] } 1388ac25c84SMarkus Armbruster 1398ac25c84SMarkus Armbruster## 140236e9397SMaksim Davydov# @CompatProperty: 141236e9397SMaksim Davydov# 142236e9397SMaksim Davydov# Property default values specific to a machine type, for use by 143236e9397SMaksim Davydov# scripts/compare-machine-types. 144236e9397SMaksim Davydov# 145236e9397SMaksim Davydov# @qom-type: name of the QOM type to which the default applies 146236e9397SMaksim Davydov# 147236e9397SMaksim Davydov# @property: name of its property to which the default applies 148236e9397SMaksim Davydov# 149236e9397SMaksim Davydov# @value: the default value (machine-specific default can overwrite 150236e9397SMaksim Davydov# the "default" default, to avoid this use -machine none) 151236e9397SMaksim Davydov# 152236e9397SMaksim Davydov# Since: 9.1 153236e9397SMaksim Davydov## 154236e9397SMaksim Davydov{ 'struct': 'CompatProperty', 155236e9397SMaksim Davydov 'data': { 'qom-type': 'str', 156236e9397SMaksim Davydov 'property': 'str', 157236e9397SMaksim Davydov 'value': 'str' } } 158236e9397SMaksim Davydov 159236e9397SMaksim Davydov## 1608ac25c84SMarkus Armbruster# @MachineInfo: 1618ac25c84SMarkus Armbruster# 1628ac25c84SMarkus Armbruster# Information describing a machine. 1638ac25c84SMarkus Armbruster# 1648ac25c84SMarkus Armbruster# @name: the name of the machine 1658ac25c84SMarkus Armbruster# 1668ac25c84SMarkus Armbruster# @alias: an alias for the machine name 1678ac25c84SMarkus Armbruster# 1688ac25c84SMarkus Armbruster# @is-default: whether the machine is default 1698ac25c84SMarkus Armbruster# 1708ac25c84SMarkus Armbruster# @cpu-max: maximum number of CPUs supported by the machine type 1719bc6e893SMarkus Armbruster# (since 1.5) 1728ac25c84SMarkus Armbruster# 1739bc6e893SMarkus Armbruster# @hotpluggable-cpus: cpu hotplug via -device is supported (since 2.7) 1748ac25c84SMarkus Armbruster# 175cd5ff833SIgor Mammedov# @numa-mem-supported: true if '-numa node,mem' option is supported by 176cd5ff833SIgor Mammedov# the machine type and false otherwise (since 4.1) 177cd5ff833SIgor Mammedov# 178a937b6aaSMarkus Armbruster# @deprecated: if true, the machine type is deprecated and may be 179a937b6aaSMarkus Armbruster# removed in future versions of QEMU according to the QEMU 180a937b6aaSMarkus Armbruster# deprecation policy (since 4.1) 18179974027SEduardo Habkost# 182a937b6aaSMarkus Armbruster# @default-cpu-type: default CPU model typename if none is requested 183a937b6aaSMarkus Armbruster# via the -cpu argument. (since 4.2) 18404109957SDaniel P. Berrangé# 185a937b6aaSMarkus Armbruster# @default-ram-id: the default ID of initial RAM memory backend (since 186a937b6aaSMarkus Armbruster# 5.2) 187c5566005SMichal Privoznik# 188b97f3147SPeter Krempa# @acpi: machine type supports ACPI (since 8.0) 189b97f3147SPeter Krempa# 190236e9397SMaksim Davydov# @compat-props: The machine type's compatibility properties. Only 191236e9397SMaksim Davydov# present when query-machines argument @compat-props is true. 192236e9397SMaksim Davydov# (since 9.1) 193236e9397SMaksim Davydov# 194236e9397SMaksim Davydov# Features: 195236e9397SMaksim Davydov# 196236e9397SMaksim Davydov# @unstable: Member @compat-props is experimental. 197236e9397SMaksim Davydov# 1989bc6e893SMarkus Armbruster# Since: 1.2 1998ac25c84SMarkus Armbruster## 2008ac25c84SMarkus Armbruster{ 'struct': 'MachineInfo', 2018ac25c84SMarkus Armbruster 'data': { 'name': 'str', '*alias': 'str', 2028ac25c84SMarkus Armbruster '*is-default': 'bool', 'cpu-max': 'int', 20379974027SEduardo Habkost 'hotpluggable-cpus': 'bool', 'numa-mem-supported': 'bool', 204c5566005SMichal Privoznik 'deprecated': 'bool', '*default-cpu-type': 'str', 205236e9397SMaksim Davydov '*default-ram-id': 'str', 'acpi': 'bool', 206236e9397SMaksim Davydov '*compat-props': { 'type': ['CompatProperty'], 207236e9397SMaksim Davydov 'features': ['unstable'] } } } 2088ac25c84SMarkus Armbruster 2098ac25c84SMarkus Armbruster## 2108ac25c84SMarkus Armbruster# @query-machines: 2118ac25c84SMarkus Armbruster# 2128ac25c84SMarkus Armbruster# Return a list of supported machines 2138ac25c84SMarkus Armbruster# 214236e9397SMaksim Davydov# @compat-props: if true, also return compatibility properties. 215236e9397SMaksim Davydov# (default: false) (since 9.1) 216236e9397SMaksim Davydov# 217236e9397SMaksim Davydov# Features: 218236e9397SMaksim Davydov# 219236e9397SMaksim Davydov# @unstable: Argument @compat-props is experimental. 220236e9397SMaksim Davydov# 2218ac25c84SMarkus Armbruster# Returns: a list of MachineInfo 2228ac25c84SMarkus Armbruster# 2239bc6e893SMarkus Armbruster# Since: 1.2 224236e9397SMaksim Davydov# 22514b48aaaSJohn Snow# .. qmp-example:: 226236e9397SMaksim Davydov# 227236e9397SMaksim Davydov# -> { "execute": "query-machines", "arguments": { "compat-props": true } } 228236e9397SMaksim Davydov# <- { "return": [ 229236e9397SMaksim Davydov# { 230236e9397SMaksim Davydov# "hotpluggable-cpus": true, 231236e9397SMaksim Davydov# "name": "pc-q35-6.2", 232236e9397SMaksim Davydov# "compat-props": [ 233236e9397SMaksim Davydov# { 234236e9397SMaksim Davydov# "qom-type": "virtio-mem", 235236e9397SMaksim Davydov# "property": "unplugged-inaccessible", 236236e9397SMaksim Davydov# "value": "off" 237236e9397SMaksim Davydov# } 238236e9397SMaksim Davydov# ], 239236e9397SMaksim Davydov# "numa-mem-supported": false, 240236e9397SMaksim Davydov# "default-cpu-type": "qemu64-x86_64-cpu", 241236e9397SMaksim Davydov# "cpu-max": 288, 242236e9397SMaksim Davydov# "deprecated": false, 243236e9397SMaksim Davydov# "default-ram-id": "pc.ram" 244236e9397SMaksim Davydov# }, 245236e9397SMaksim Davydov# ... 246236e9397SMaksim Davydov# } 2478ac25c84SMarkus Armbruster## 248236e9397SMaksim Davydov{ 'command': 'query-machines', 249236e9397SMaksim Davydov 'data': { '*compat-props': { 'type': 'bool', 250236e9397SMaksim Davydov 'features': [ 'unstable' ] } }, 251236e9397SMaksim Davydov 'returns': ['MachineInfo'] } 2528ac25c84SMarkus Armbruster 2538ac25c84SMarkus Armbruster## 2548ac25c84SMarkus Armbruster# @CurrentMachineParams: 2558ac25c84SMarkus Armbruster# 2568ac25c84SMarkus Armbruster# Information describing the running machine parameters. 2578ac25c84SMarkus Armbruster# 2588ac25c84SMarkus Armbruster# @wakeup-suspend-support: true if the machine supports wake up from 2598ac25c84SMarkus Armbruster# suspend 2608ac25c84SMarkus Armbruster# 2618ac25c84SMarkus Armbruster# Since: 4.0 2628ac25c84SMarkus Armbruster## 2638ac25c84SMarkus Armbruster{ 'struct': 'CurrentMachineParams', 2648ac25c84SMarkus Armbruster 'data': { 'wakeup-suspend-support': 'bool'} } 2658ac25c84SMarkus Armbruster 2668ac25c84SMarkus Armbruster## 2678ac25c84SMarkus Armbruster# @query-current-machine: 2688ac25c84SMarkus Armbruster# 2698ac25c84SMarkus Armbruster# Return information on the current virtual machine. 2708ac25c84SMarkus Armbruster# 2718ac25c84SMarkus Armbruster# Returns: CurrentMachineParams 2728ac25c84SMarkus Armbruster# 2738ac25c84SMarkus Armbruster# Since: 4.0 2748ac25c84SMarkus Armbruster## 2758ac25c84SMarkus Armbruster{ 'command': 'query-current-machine', 'returns': 'CurrentMachineParams' } 2768ac25c84SMarkus Armbruster 2778ac25c84SMarkus Armbruster## 278ffaee83bSMarkus Armbruster# @TargetInfo: 279ffaee83bSMarkus Armbruster# 280ffaee83bSMarkus Armbruster# Information describing the QEMU target. 281ffaee83bSMarkus Armbruster# 282ffaee83bSMarkus Armbruster# @arch: the target architecture 283ffaee83bSMarkus Armbruster# 2849bc6e893SMarkus Armbruster# Since: 1.2 285ffaee83bSMarkus Armbruster## 286ffaee83bSMarkus Armbruster{ 'struct': 'TargetInfo', 287ffaee83bSMarkus Armbruster 'data': { 'arch': 'SysEmuTarget' } } 288ffaee83bSMarkus Armbruster 289ffaee83bSMarkus Armbruster## 290ffaee83bSMarkus Armbruster# @query-target: 291ffaee83bSMarkus Armbruster# 292ffaee83bSMarkus Armbruster# Return information about the target for this QEMU 293ffaee83bSMarkus Armbruster# 294ffaee83bSMarkus Armbruster# Returns: TargetInfo 295ffaee83bSMarkus Armbruster# 2969bc6e893SMarkus Armbruster# Since: 1.2 297ffaee83bSMarkus Armbruster## 298ffaee83bSMarkus Armbruster{ 'command': 'query-target', 'returns': 'TargetInfo' } 299ffaee83bSMarkus Armbruster 300ffaee83bSMarkus Armbruster## 301f68c0147SPhilippe Mathieu-Daudé# @UuidInfo: 302f68c0147SPhilippe Mathieu-Daudé# 303f68c0147SPhilippe Mathieu-Daudé# Guest UUID information (Universally Unique Identifier). 304f68c0147SPhilippe Mathieu-Daudé# 305f68c0147SPhilippe Mathieu-Daudé# @UUID: the UUID of the guest 306f68c0147SPhilippe Mathieu-Daudé# 3079bc6e893SMarkus Armbruster# Since: 0.14 308f68c0147SPhilippe Mathieu-Daudé# 309dd950220SMarkus Armbruster# .. note:: If no UUID was specified for the guest, the nil UUID (all 310dd950220SMarkus Armbruster# zeroes) is returned. 311f68c0147SPhilippe Mathieu-Daudé## 312f68c0147SPhilippe Mathieu-Daudé{ 'struct': 'UuidInfo', 'data': {'UUID': 'str'} } 313f68c0147SPhilippe Mathieu-Daudé 314f68c0147SPhilippe Mathieu-Daudé## 315f68c0147SPhilippe Mathieu-Daudé# @query-uuid: 316f68c0147SPhilippe Mathieu-Daudé# 317f68c0147SPhilippe Mathieu-Daudé# Query the guest UUID information. 318f68c0147SPhilippe Mathieu-Daudé# 319f68c0147SPhilippe Mathieu-Daudé# Returns: The @UuidInfo for the guest 320f68c0147SPhilippe Mathieu-Daudé# 3219bc6e893SMarkus Armbruster# Since: 0.14 322f68c0147SPhilippe Mathieu-Daudé# 32314b48aaaSJohn Snow# .. qmp-example:: 324f68c0147SPhilippe Mathieu-Daudé# 325f68c0147SPhilippe Mathieu-Daudé# -> { "execute": "query-uuid" } 326f68c0147SPhilippe Mathieu-Daudé# <- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } } 327f68c0147SPhilippe Mathieu-Daudé## 328f68c0147SPhilippe Mathieu-Daudé{ 'command': 'query-uuid', 'returns': 'UuidInfo', 'allow-preconfig': true } 329f68c0147SPhilippe Mathieu-Daudé 330f68c0147SPhilippe Mathieu-Daudé## 331db0f08dfSPhilippe Mathieu-Daudé# @GuidInfo: 332db0f08dfSPhilippe Mathieu-Daudé# 333db0f08dfSPhilippe Mathieu-Daudé# GUID information. 334db0f08dfSPhilippe Mathieu-Daudé# 335db0f08dfSPhilippe Mathieu-Daudé# @guid: the globally unique identifier 336db0f08dfSPhilippe Mathieu-Daudé# 337db0f08dfSPhilippe Mathieu-Daudé# Since: 2.9 338db0f08dfSPhilippe Mathieu-Daudé## 339db0f08dfSPhilippe Mathieu-Daudé{ 'struct': 'GuidInfo', 'data': {'guid': 'str'} } 340db0f08dfSPhilippe Mathieu-Daudé 341db0f08dfSPhilippe Mathieu-Daudé## 342db0f08dfSPhilippe Mathieu-Daudé# @query-vm-generation-id: 343db0f08dfSPhilippe Mathieu-Daudé# 344db0f08dfSPhilippe Mathieu-Daudé# Show Virtual Machine Generation ID 345db0f08dfSPhilippe Mathieu-Daudé# 346db0f08dfSPhilippe Mathieu-Daudé# Since: 2.9 347db0f08dfSPhilippe Mathieu-Daudé## 348db0f08dfSPhilippe Mathieu-Daudé{ 'command': 'query-vm-generation-id', 'returns': 'GuidInfo' } 349db0f08dfSPhilippe Mathieu-Daudé 350db0f08dfSPhilippe Mathieu-Daudé## 35190f8c0f9SPhilippe Mathieu-Daudé# @system_reset: 35290f8c0f9SPhilippe Mathieu-Daudé# 35390f8c0f9SPhilippe Mathieu-Daudé# Performs a hard reset of a guest. 35490f8c0f9SPhilippe Mathieu-Daudé# 3559bc6e893SMarkus Armbruster# Since: 0.14 35690f8c0f9SPhilippe Mathieu-Daudé# 35714b48aaaSJohn Snow# .. qmp-example:: 35890f8c0f9SPhilippe Mathieu-Daudé# 35990f8c0f9SPhilippe Mathieu-Daudé# -> { "execute": "system_reset" } 36090f8c0f9SPhilippe Mathieu-Daudé# <- { "return": {} } 36190f8c0f9SPhilippe Mathieu-Daudé## 36290f8c0f9SPhilippe Mathieu-Daudé{ 'command': 'system_reset' } 36390f8c0f9SPhilippe Mathieu-Daudé 36490f8c0f9SPhilippe Mathieu-Daudé## 36590f8c0f9SPhilippe Mathieu-Daudé# @system_powerdown: 36690f8c0f9SPhilippe Mathieu-Daudé# 36790f8c0f9SPhilippe Mathieu-Daudé# Requests that a guest perform a powerdown operation. 36890f8c0f9SPhilippe Mathieu-Daudé# 3699bc6e893SMarkus Armbruster# Since: 0.14 37090f8c0f9SPhilippe Mathieu-Daudé# 371d461c279SJohn Snow# .. note:: A guest may or may not respond to this command. This 372d461c279SJohn Snow# command returning does not indicate that a guest has accepted the 37301bed0ffSMarkus Armbruster# request or that it has shut down. Many guests will respond to 37401bed0ffSMarkus Armbruster# this command by prompting the user in some way. 3754ae65a52SAndrea Bolognani# 37614b48aaaSJohn Snow# .. qmp-example:: 37790f8c0f9SPhilippe Mathieu-Daudé# 37890f8c0f9SPhilippe Mathieu-Daudé# -> { "execute": "system_powerdown" } 37990f8c0f9SPhilippe Mathieu-Daudé# <- { "return": {} } 38090f8c0f9SPhilippe Mathieu-Daudé## 38190f8c0f9SPhilippe Mathieu-Daudé{ 'command': 'system_powerdown' } 38290f8c0f9SPhilippe Mathieu-Daudé 38390f8c0f9SPhilippe Mathieu-Daudé## 38490f8c0f9SPhilippe Mathieu-Daudé# @system_wakeup: 38590f8c0f9SPhilippe Mathieu-Daudé# 38690f8c0f9SPhilippe Mathieu-Daudé# Wake up guest from suspend. If the guest has wake-up from suspend 38790f8c0f9SPhilippe Mathieu-Daudé# support enabled (wakeup-suspend-support flag from 38890f8c0f9SPhilippe Mathieu-Daudé# query-current-machine), wake-up guest from suspend if the guest is 38990f8c0f9SPhilippe Mathieu-Daudé# in SUSPENDED state. Return an error otherwise. 39090f8c0f9SPhilippe Mathieu-Daudé# 39190f8c0f9SPhilippe Mathieu-Daudé# Since: 1.1 39290f8c0f9SPhilippe Mathieu-Daudé# 393d461c279SJohn Snow# .. note:: Prior to 4.0, this command does nothing in case the guest 39490f8c0f9SPhilippe Mathieu-Daudé# isn't suspended. 39590f8c0f9SPhilippe Mathieu-Daudé# 39614b48aaaSJohn Snow# .. qmp-example:: 39790f8c0f9SPhilippe Mathieu-Daudé# 39890f8c0f9SPhilippe Mathieu-Daudé# -> { "execute": "system_wakeup" } 39990f8c0f9SPhilippe Mathieu-Daudé# <- { "return": {} } 40090f8c0f9SPhilippe Mathieu-Daudé## 40190f8c0f9SPhilippe Mathieu-Daudé{ 'command': 'system_wakeup' } 40290f8c0f9SPhilippe Mathieu-Daudé 40390f8c0f9SPhilippe Mathieu-Daudé## 4048dc007d3SPhilippe Mathieu-Daudé# @LostTickPolicy: 4058dc007d3SPhilippe Mathieu-Daudé# 406a937b6aaSMarkus Armbruster# Policy for handling lost ticks in timer devices. Ticks end up 407a937b6aaSMarkus Armbruster# getting lost when, for example, the guest is paused. 4088dc007d3SPhilippe Mathieu-Daudé# 409a937b6aaSMarkus Armbruster# @discard: throw away the missed ticks and continue with future 410a937b6aaSMarkus Armbruster# injection normally. The guest OS will see the timer jump ahead 411a937b6aaSMarkus Armbruster# by a potentially quite significant amount all at once, as if the 4128dc007d3SPhilippe Mathieu-Daudé# intervening chunk of time had simply not existed; needless to 4138dc007d3SPhilippe Mathieu-Daudé# say, such a sudden jump can easily confuse a guest OS which is 4148dc007d3SPhilippe Mathieu-Daudé# not specifically prepared to deal with it. Assuming the guest 4158dc007d3SPhilippe Mathieu-Daudé# OS can deal correctly with the time jump, the time in the guest 4168dc007d3SPhilippe Mathieu-Daudé# and in the host should now match. 4178dc007d3SPhilippe Mathieu-Daudé# 418a937b6aaSMarkus Armbruster# @delay: continue to deliver ticks at the normal rate. The guest OS 419a937b6aaSMarkus Armbruster# will not notice anything is amiss, as from its point of view 420a937b6aaSMarkus Armbruster# time will have continued to flow normally. The time in the 421a937b6aaSMarkus Armbruster# guest should now be behind the time in the host by exactly the 422a937b6aaSMarkus Armbruster# amount of time during which ticks have been missed. 4238dc007d3SPhilippe Mathieu-Daudé# 424a937b6aaSMarkus Armbruster# @slew: deliver ticks at a higher rate to catch up with the missed 425a937b6aaSMarkus Armbruster# ticks. The guest OS will not notice anything is amiss, as from 426a937b6aaSMarkus Armbruster# its point of view time will have continued to flow normally. 427a937b6aaSMarkus Armbruster# Once the timer has managed to catch up with all the missing 428a937b6aaSMarkus Armbruster# ticks, the time in the guest and in the host should match. 4298dc007d3SPhilippe Mathieu-Daudé# 4308dc007d3SPhilippe Mathieu-Daudé# Since: 2.0 4318dc007d3SPhilippe Mathieu-Daudé## 4328dc007d3SPhilippe Mathieu-Daudé{ 'enum': 'LostTickPolicy', 4338dc007d3SPhilippe Mathieu-Daudé 'data': ['discard', 'delay', 'slew' ] } 4348dc007d3SPhilippe Mathieu-Daudé 4358dc007d3SPhilippe Mathieu-Daudé## 436df7a1f48SPhilippe Mathieu-Daudé# @inject-nmi: 437df7a1f48SPhilippe Mathieu-Daudé# 438a937b6aaSMarkus Armbruster# Injects a Non-Maskable Interrupt into the default CPU (x86/s390) or 439a937b6aaSMarkus Armbruster# all CPUs (ppc64). The command fails when the guest doesn't support 440a937b6aaSMarkus Armbruster# injecting. 441df7a1f48SPhilippe Mathieu-Daudé# 4429bc6e893SMarkus Armbruster# Since: 0.14 443df7a1f48SPhilippe Mathieu-Daudé# 444d461c279SJohn Snow# .. note:: Prior to 2.1, this command was only supported for x86 and 445d461c279SJohn Snow# s390 VMs. 446df7a1f48SPhilippe Mathieu-Daudé# 44714b48aaaSJohn Snow# .. qmp-example:: 448df7a1f48SPhilippe Mathieu-Daudé# 449df7a1f48SPhilippe Mathieu-Daudé# -> { "execute": "inject-nmi" } 450df7a1f48SPhilippe Mathieu-Daudé# <- { "return": {} } 451df7a1f48SPhilippe Mathieu-Daudé## 452df7a1f48SPhilippe Mathieu-Daudé{ 'command': 'inject-nmi' } 453df7a1f48SPhilippe Mathieu-Daudé 454df7a1f48SPhilippe Mathieu-Daudé## 45581dddc1bSPhilippe Mathieu-Daudé# @KvmInfo: 45681dddc1bSPhilippe Mathieu-Daudé# 45781dddc1bSPhilippe Mathieu-Daudé# Information about support for KVM acceleration 45881dddc1bSPhilippe Mathieu-Daudé# 45981dddc1bSPhilippe Mathieu-Daudé# @enabled: true if KVM acceleration is active 46081dddc1bSPhilippe Mathieu-Daudé# 46181dddc1bSPhilippe Mathieu-Daudé# @present: true if KVM acceleration is built into this executable 46281dddc1bSPhilippe Mathieu-Daudé# 4639bc6e893SMarkus Armbruster# Since: 0.14 46481dddc1bSPhilippe Mathieu-Daudé## 46581dddc1bSPhilippe Mathieu-Daudé{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} } 46681dddc1bSPhilippe Mathieu-Daudé 46781dddc1bSPhilippe Mathieu-Daudé## 46881dddc1bSPhilippe Mathieu-Daudé# @query-kvm: 46981dddc1bSPhilippe Mathieu-Daudé# 47081dddc1bSPhilippe Mathieu-Daudé# Returns information about KVM acceleration 47181dddc1bSPhilippe Mathieu-Daudé# 47281dddc1bSPhilippe Mathieu-Daudé# Returns: @KvmInfo 47381dddc1bSPhilippe Mathieu-Daudé# 4749bc6e893SMarkus Armbruster# Since: 0.14 47581dddc1bSPhilippe Mathieu-Daudé# 47614b48aaaSJohn Snow# .. qmp-example:: 47781dddc1bSPhilippe Mathieu-Daudé# 47881dddc1bSPhilippe Mathieu-Daudé# -> { "execute": "query-kvm" } 47981dddc1bSPhilippe Mathieu-Daudé# <- { "return": { "enabled": true, "present": true } } 48081dddc1bSPhilippe Mathieu-Daudé## 48181dddc1bSPhilippe Mathieu-Daudé{ 'command': 'query-kvm', 'returns': 'KvmInfo' } 48281dddc1bSPhilippe Mathieu-Daudé 48381dddc1bSPhilippe Mathieu-Daudé## 4848ac25c84SMarkus Armbruster# @NumaOptionsType: 4858ac25c84SMarkus Armbruster# 4868ac25c84SMarkus Armbruster# @node: NUMA nodes configuration 4878ac25c84SMarkus Armbruster# 4888ac25c84SMarkus Armbruster# @dist: NUMA distance configuration (since 2.10) 4898ac25c84SMarkus Armbruster# 4908ac25c84SMarkus Armbruster# @cpu: property based CPU(s) to node mapping (Since: 2.10) 4918ac25c84SMarkus Armbruster# 4929b12dfa0SLiu Jingqi# @hmat-lb: memory latency and bandwidth information (Since: 5.0) 4939b12dfa0SLiu Jingqi# 494c412a48dSLiu Jingqi# @hmat-cache: memory side cache information (Since: 5.0) 495c412a48dSLiu Jingqi# 4968ac25c84SMarkus Armbruster# Since: 2.1 4978ac25c84SMarkus Armbruster## 4988ac25c84SMarkus Armbruster{ 'enum': 'NumaOptionsType', 499c412a48dSLiu Jingqi 'data': [ 'node', 'dist', 'cpu', 'hmat-lb', 'hmat-cache' ] } 5008ac25c84SMarkus Armbruster 5018ac25c84SMarkus Armbruster## 5028ac25c84SMarkus Armbruster# @NumaOptions: 5038ac25c84SMarkus Armbruster# 5048ac25c84SMarkus Armbruster# A discriminated record of NUMA options. (for OptsVisitor) 5058ac25c84SMarkus Armbruster# 50689a2273bSMarkus Armbruster# @type: NUMA option type 50789a2273bSMarkus Armbruster# 5088ac25c84SMarkus Armbruster# Since: 2.1 5098ac25c84SMarkus Armbruster## 5108ac25c84SMarkus Armbruster{ 'union': 'NumaOptions', 5118ac25c84SMarkus Armbruster 'base': { 'type': 'NumaOptionsType' }, 5128ac25c84SMarkus Armbruster 'discriminator': 'type', 5138ac25c84SMarkus Armbruster 'data': { 5148ac25c84SMarkus Armbruster 'node': 'NumaNodeOptions', 5158ac25c84SMarkus Armbruster 'dist': 'NumaDistOptions', 5169b12dfa0SLiu Jingqi 'cpu': 'NumaCpuOptions', 517c412a48dSLiu Jingqi 'hmat-lb': 'NumaHmatLBOptions', 518c412a48dSLiu Jingqi 'hmat-cache': 'NumaHmatCacheOptions' }} 5198ac25c84SMarkus Armbruster 5208ac25c84SMarkus Armbruster## 5218ac25c84SMarkus Armbruster# @NumaNodeOptions: 5228ac25c84SMarkus Armbruster# 5238ac25c84SMarkus Armbruster# Create a guest NUMA node. (for OptsVisitor) 5248ac25c84SMarkus Armbruster# 5258ac25c84SMarkus Armbruster# @nodeid: NUMA node ID (increase by 1 from 0 if omitted) 5268ac25c84SMarkus Armbruster# 527a937b6aaSMarkus Armbruster# @cpus: VCPUs belonging to this node (assign VCPUS round-robin if 528a937b6aaSMarkus Armbruster# omitted) 5298ac25c84SMarkus Armbruster# 5308ac25c84SMarkus Armbruster# @mem: memory size of this node; mutually exclusive with @memdev. 531a937b6aaSMarkus Armbruster# Equally divide total memory among nodes if both @mem and @memdev 532a937b6aaSMarkus Armbruster# are omitted. 5338ac25c84SMarkus Armbruster# 534a937b6aaSMarkus Armbruster# @memdev: memory backend object. If specified for one node, it must 535a937b6aaSMarkus Armbruster# be specified for all nodes. 5368ac25c84SMarkus Armbruster# 537a937b6aaSMarkus Armbruster# @initiator: defined in ACPI 6.3 Chapter 5.2.27.3 Table 5-145, points 538a937b6aaSMarkus Armbruster# to the nodeid which has the memory controller responsible for 539a937b6aaSMarkus Armbruster# this NUMA node. This field provides additional information as 540a937b6aaSMarkus Armbruster# to the initiator node that is closest (as in directly attached) 541a937b6aaSMarkus Armbruster# to this node, and therefore has the best performance (since 5.0) 542244b3f44STao Xu# 5438ac25c84SMarkus Armbruster# Since: 2.1 5448ac25c84SMarkus Armbruster## 5458ac25c84SMarkus Armbruster{ 'struct': 'NumaNodeOptions', 5468ac25c84SMarkus Armbruster 'data': { 5478ac25c84SMarkus Armbruster '*nodeid': 'uint16', 5488ac25c84SMarkus Armbruster '*cpus': ['uint16'], 5498ac25c84SMarkus Armbruster '*mem': 'size', 550244b3f44STao Xu '*memdev': 'str', 551244b3f44STao Xu '*initiator': 'uint16' }} 5528ac25c84SMarkus Armbruster 5538ac25c84SMarkus Armbruster## 5548ac25c84SMarkus Armbruster# @NumaDistOptions: 5558ac25c84SMarkus Armbruster# 5568ac25c84SMarkus Armbruster# Set the distance between 2 NUMA nodes. 5578ac25c84SMarkus Armbruster# 5588ac25c84SMarkus Armbruster# @src: source NUMA node. 5598ac25c84SMarkus Armbruster# 5608ac25c84SMarkus Armbruster# @dst: destination NUMA node. 5618ac25c84SMarkus Armbruster# 562a937b6aaSMarkus Armbruster# @val: NUMA distance from source node to destination node. When a 563a937b6aaSMarkus Armbruster# node is unreachable from another node, set the distance between 564a937b6aaSMarkus Armbruster# them to 255. 5658ac25c84SMarkus Armbruster# 5668ac25c84SMarkus Armbruster# Since: 2.10 5678ac25c84SMarkus Armbruster## 5688ac25c84SMarkus Armbruster{ 'struct': 'NumaDistOptions', 5698ac25c84SMarkus Armbruster 'data': { 5708ac25c84SMarkus Armbruster 'src': 'uint16', 5718ac25c84SMarkus Armbruster 'dst': 'uint16', 5728ac25c84SMarkus Armbruster 'val': 'uint8' }} 5738ac25c84SMarkus Armbruster 5748ac25c84SMarkus Armbruster## 575aadfe320SJonathan Cameron# @CXLFixedMemoryWindowOptions: 576aadfe320SJonathan Cameron# 577aadfe320SJonathan Cameron# Create a CXL Fixed Memory Window 578aadfe320SJonathan Cameron# 579aadfe320SJonathan Cameron# @size: Size of the Fixed Memory Window in bytes. Must be a multiple 580aadfe320SJonathan Cameron# of 256MiB. 581a937b6aaSMarkus Armbruster# 582aadfe320SJonathan Cameron# @interleave-granularity: Number of contiguous bytes for which 583a937b6aaSMarkus Armbruster# accesses will go to a given interleave target. Accepted values 584a937b6aaSMarkus Armbruster# [256, 512, 1k, 2k, 4k, 8k, 16k] 585a937b6aaSMarkus Armbruster# 586a937b6aaSMarkus Armbruster# @targets: Target root bridge IDs from -device ...,id=<ID> for each 587a937b6aaSMarkus Armbruster# root bridge. 588aadfe320SJonathan Cameron# 5897c3def93SMarkus Armbruster# Since: 7.1 590aadfe320SJonathan Cameron## 591aadfe320SJonathan Cameron{ 'struct': 'CXLFixedMemoryWindowOptions', 592aadfe320SJonathan Cameron 'data': { 593aadfe320SJonathan Cameron 'size': 'size', 594aadfe320SJonathan Cameron '*interleave-granularity': 'size', 595aadfe320SJonathan Cameron 'targets': ['str'] }} 596aadfe320SJonathan Cameron 597aadfe320SJonathan Cameron## 59803b39fcfSJonathan Cameron# @CXLFMWProperties: 59903b39fcfSJonathan Cameron# 60003b39fcfSJonathan Cameron# List of CXL Fixed Memory Windows. 60103b39fcfSJonathan Cameron# 60203b39fcfSJonathan Cameron# @cxl-fmw: List of CXLFixedMemoryWindowOptions 60303b39fcfSJonathan Cameron# 6047c3def93SMarkus Armbruster# Since: 7.1 60503b39fcfSJonathan Cameron## 60603b39fcfSJonathan Cameron{ 'struct' : 'CXLFMWProperties', 60703b39fcfSJonathan Cameron 'data': { 'cxl-fmw': ['CXLFixedMemoryWindowOptions'] } 60803b39fcfSJonathan Cameron} 60903b39fcfSJonathan Cameron 61003b39fcfSJonathan Cameron## 6118ac25c84SMarkus Armbruster# @X86CPURegister32: 6128ac25c84SMarkus Armbruster# 6138ac25c84SMarkus Armbruster# A X86 32-bit register 6148ac25c84SMarkus Armbruster# 6158ac25c84SMarkus Armbruster# Since: 1.5 6168ac25c84SMarkus Armbruster## 6178ac25c84SMarkus Armbruster{ 'enum': 'X86CPURegister32', 6188ac25c84SMarkus Armbruster 'data': [ 'EAX', 'EBX', 'ECX', 'EDX', 'ESP', 'EBP', 'ESI', 'EDI' ] } 6198ac25c84SMarkus Armbruster 6208ac25c84SMarkus Armbruster## 6218ac25c84SMarkus Armbruster# @X86CPUFeatureWordInfo: 6228ac25c84SMarkus Armbruster# 6238ac25c84SMarkus Armbruster# Information about a X86 CPU feature word 6248ac25c84SMarkus Armbruster# 625a937b6aaSMarkus Armbruster# @cpuid-input-eax: Input EAX value for CPUID instruction for that 626a937b6aaSMarkus Armbruster# feature word 6278ac25c84SMarkus Armbruster# 6288ac25c84SMarkus Armbruster# @cpuid-input-ecx: Input ECX value for CPUID instruction for that 6298ac25c84SMarkus Armbruster# feature word 6308ac25c84SMarkus Armbruster# 6318ac25c84SMarkus Armbruster# @cpuid-register: Output register containing the feature bits 6328ac25c84SMarkus Armbruster# 6338ac25c84SMarkus Armbruster# @features: value of output register, containing the feature bits 6348ac25c84SMarkus Armbruster# 6358ac25c84SMarkus Armbruster# Since: 1.5 6368ac25c84SMarkus Armbruster## 6378ac25c84SMarkus Armbruster{ 'struct': 'X86CPUFeatureWordInfo', 6388ac25c84SMarkus Armbruster 'data': { 'cpuid-input-eax': 'int', 6398ac25c84SMarkus Armbruster '*cpuid-input-ecx': 'int', 6408ac25c84SMarkus Armbruster 'cpuid-register': 'X86CPURegister32', 6418ac25c84SMarkus Armbruster 'features': 'int' } } 6428ac25c84SMarkus Armbruster 6438ac25c84SMarkus Armbruster## 6448ac25c84SMarkus Armbruster# @DummyForceArrays: 6458ac25c84SMarkus Armbruster# 646a937b6aaSMarkus Armbruster# Not used by QMP; hack to let us use X86CPUFeatureWordInfoList 647a937b6aaSMarkus Armbruster# internally 6488ac25c84SMarkus Armbruster# 6498ac25c84SMarkus Armbruster# Since: 2.5 6508ac25c84SMarkus Armbruster## 6518ac25c84SMarkus Armbruster{ 'struct': 'DummyForceArrays', 6528ac25c84SMarkus Armbruster 'data': { 'unused': ['X86CPUFeatureWordInfo'] } } 6538ac25c84SMarkus Armbruster 6548ac25c84SMarkus Armbruster## 6558ac25c84SMarkus Armbruster# @NumaCpuOptions: 6568ac25c84SMarkus Armbruster# 657a937b6aaSMarkus Armbruster# Option "-numa cpu" overrides default cpu to node mapping. It 658a937b6aaSMarkus Armbruster# accepts the same set of cpu properties as returned by 6598ac25c84SMarkus Armbruster# query-hotpluggable-cpus[].props, where node-id could be used to 6608ac25c84SMarkus Armbruster# override default node mapping. 6618ac25c84SMarkus Armbruster# 6628ac25c84SMarkus Armbruster# Since: 2.10 6638ac25c84SMarkus Armbruster## 6648ac25c84SMarkus Armbruster{ 'struct': 'NumaCpuOptions', 6658ac25c84SMarkus Armbruster 'base': 'CpuInstanceProperties', 6668ac25c84SMarkus Armbruster 'data' : {} } 6678ac25c84SMarkus Armbruster 6688ac25c84SMarkus Armbruster## 6699b12dfa0SLiu Jingqi# @HmatLBMemoryHierarchy: 6709b12dfa0SLiu Jingqi# 6719b12dfa0SLiu Jingqi# The memory hierarchy in the System Locality Latency and Bandwidth 6729b12dfa0SLiu Jingqi# Information Structure of HMAT (Heterogeneous Memory Attribute Table) 6739b12dfa0SLiu Jingqi# 6749b12dfa0SLiu Jingqi# For more information about @HmatLBMemoryHierarchy, see chapter 6759b12dfa0SLiu Jingqi# 5.2.27.4: Table 5-146: Field "Flags" of ACPI 6.3 spec. 6769b12dfa0SLiu Jingqi# 6779b12dfa0SLiu Jingqi# @memory: the structure represents the memory performance 6789b12dfa0SLiu Jingqi# 6799b12dfa0SLiu Jingqi# @first-level: first level of memory side cache 6809b12dfa0SLiu Jingqi# 6819b12dfa0SLiu Jingqi# @second-level: second level of memory side cache 6829b12dfa0SLiu Jingqi# 6839b12dfa0SLiu Jingqi# @third-level: third level of memory side cache 6849b12dfa0SLiu Jingqi# 6859b12dfa0SLiu Jingqi# Since: 5.0 6869b12dfa0SLiu Jingqi## 6879b12dfa0SLiu Jingqi{ 'enum': 'HmatLBMemoryHierarchy', 6889b12dfa0SLiu Jingqi 'data': [ 'memory', 'first-level', 'second-level', 'third-level' ] } 6899b12dfa0SLiu Jingqi 6909b12dfa0SLiu Jingqi## 6919b12dfa0SLiu Jingqi# @HmatLBDataType: 6929b12dfa0SLiu Jingqi# 693a937b6aaSMarkus Armbruster# Data type in the System Locality Latency and Bandwidth Information 694a937b6aaSMarkus Armbruster# Structure of HMAT (Heterogeneous Memory Attribute Table) 6959b12dfa0SLiu Jingqi# 696a937b6aaSMarkus Armbruster# For more information about @HmatLBDataType, see chapter 5.2.27.4: 697a937b6aaSMarkus Armbruster# Table 5-146: Field "Data Type" of ACPI 6.3 spec. 6989b12dfa0SLiu Jingqi# 6999b12dfa0SLiu Jingqi# @access-latency: access latency (nanoseconds) 7009b12dfa0SLiu Jingqi# 7019b12dfa0SLiu Jingqi# @read-latency: read latency (nanoseconds) 7029b12dfa0SLiu Jingqi# 7039b12dfa0SLiu Jingqi# @write-latency: write latency (nanoseconds) 7049b12dfa0SLiu Jingqi# 7059b12dfa0SLiu Jingqi# @access-bandwidth: access bandwidth (Bytes per second) 7069b12dfa0SLiu Jingqi# 7079b12dfa0SLiu Jingqi# @read-bandwidth: read bandwidth (Bytes per second) 7089b12dfa0SLiu Jingqi# 7099b12dfa0SLiu Jingqi# @write-bandwidth: write bandwidth (Bytes per second) 7109b12dfa0SLiu Jingqi# 7119b12dfa0SLiu Jingqi# Since: 5.0 7129b12dfa0SLiu Jingqi## 7139b12dfa0SLiu Jingqi{ 'enum': 'HmatLBDataType', 7149b12dfa0SLiu Jingqi 'data': [ 'access-latency', 'read-latency', 'write-latency', 7159b12dfa0SLiu Jingqi 'access-bandwidth', 'read-bandwidth', 'write-bandwidth' ] } 7169b12dfa0SLiu Jingqi 7179b12dfa0SLiu Jingqi## 7189b12dfa0SLiu Jingqi# @NumaHmatLBOptions: 7199b12dfa0SLiu Jingqi# 720a937b6aaSMarkus Armbruster# Set the system locality latency and bandwidth information between 721a937b6aaSMarkus Armbruster# Initiator and Target proximity Domains. 7229b12dfa0SLiu Jingqi# 723a937b6aaSMarkus Armbruster# For more information about @NumaHmatLBOptions, see chapter 5.2.27.4: 724a937b6aaSMarkus Armbruster# Table 5-146 of ACPI 6.3 spec. 7259b12dfa0SLiu Jingqi# 7269b12dfa0SLiu Jingqi# @initiator: the Initiator Proximity Domain. 7279b12dfa0SLiu Jingqi# 7289b12dfa0SLiu Jingqi# @target: the Target Proximity Domain. 7299b12dfa0SLiu Jingqi# 730a937b6aaSMarkus Armbruster# @hierarchy: the Memory Hierarchy. Indicates the performance of 731a937b6aaSMarkus Armbruster# memory or side cache. 7329b12dfa0SLiu Jingqi# 733a937b6aaSMarkus Armbruster# @data-type: presents the type of data, access/read/write latency or 734a937b6aaSMarkus Armbruster# hit latency. 7359b12dfa0SLiu Jingqi# 736a937b6aaSMarkus Armbruster# @latency: the value of latency from @initiator to @target proximity 737a937b6aaSMarkus Armbruster# domain, the latency unit is "ns(nanosecond)". 7389b12dfa0SLiu Jingqi# 7399b12dfa0SLiu Jingqi# @bandwidth: the value of bandwidth between @initiator and @target 740a937b6aaSMarkus Armbruster# proximity domain, the bandwidth unit is "Bytes per second". 7419b12dfa0SLiu Jingqi# 7429b12dfa0SLiu Jingqi# Since: 5.0 7439b12dfa0SLiu Jingqi## 7449b12dfa0SLiu Jingqi{ 'struct': 'NumaHmatLBOptions', 7459b12dfa0SLiu Jingqi 'data': { 7469b12dfa0SLiu Jingqi 'initiator': 'uint16', 7479b12dfa0SLiu Jingqi 'target': 'uint16', 7489b12dfa0SLiu Jingqi 'hierarchy': 'HmatLBMemoryHierarchy', 7499b12dfa0SLiu Jingqi 'data-type': 'HmatLBDataType', 7509b12dfa0SLiu Jingqi '*latency': 'uint64', 7519b12dfa0SLiu Jingqi '*bandwidth': 'size' }} 7529b12dfa0SLiu Jingqi 7539b12dfa0SLiu Jingqi## 754c412a48dSLiu Jingqi# @HmatCacheAssociativity: 755c412a48dSLiu Jingqi# 756c412a48dSLiu Jingqi# Cache associativity in the Memory Side Cache Information Structure 757c412a48dSLiu Jingqi# of HMAT 758c412a48dSLiu Jingqi# 759c412a48dSLiu Jingqi# For more information of @HmatCacheAssociativity, see chapter 760c412a48dSLiu Jingqi# 5.2.27.5: Table 5-147 of ACPI 6.3 spec. 761c412a48dSLiu Jingqi# 762a937b6aaSMarkus Armbruster# @none: None (no memory side cache in this proximity domain, or cache 763a937b6aaSMarkus Armbruster# associativity unknown) 764c412a48dSLiu Jingqi# 765c412a48dSLiu Jingqi# @direct: Direct Mapped 766c412a48dSLiu Jingqi# 767c412a48dSLiu Jingqi# @complex: Complex Cache Indexing (implementation specific) 768c412a48dSLiu Jingqi# 769c412a48dSLiu Jingqi# Since: 5.0 770c412a48dSLiu Jingqi## 771c412a48dSLiu Jingqi{ 'enum': 'HmatCacheAssociativity', 772c412a48dSLiu Jingqi 'data': [ 'none', 'direct', 'complex' ] } 773c412a48dSLiu Jingqi 774c412a48dSLiu Jingqi## 775c412a48dSLiu Jingqi# @HmatCacheWritePolicy: 776c412a48dSLiu Jingqi# 777a937b6aaSMarkus Armbruster# Cache write policy in the Memory Side Cache Information Structure of 778a937b6aaSMarkus Armbruster# HMAT 779c412a48dSLiu Jingqi# 780a937b6aaSMarkus Armbruster# For more information of @HmatCacheWritePolicy, see chapter 5.2.27.5: 781a937b6aaSMarkus Armbruster# Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec. 782c412a48dSLiu Jingqi# 783a937b6aaSMarkus Armbruster# @none: None (no memory side cache in this proximity domain, or cache 784a937b6aaSMarkus Armbruster# write policy unknown) 785c412a48dSLiu Jingqi# 786c412a48dSLiu Jingqi# @write-back: Write Back (WB) 787c412a48dSLiu Jingqi# 788c412a48dSLiu Jingqi# @write-through: Write Through (WT) 789c412a48dSLiu Jingqi# 790c412a48dSLiu Jingqi# Since: 5.0 791c412a48dSLiu Jingqi## 792c412a48dSLiu Jingqi{ 'enum': 'HmatCacheWritePolicy', 793c412a48dSLiu Jingqi 'data': [ 'none', 'write-back', 'write-through' ] } 794c412a48dSLiu Jingqi 795c412a48dSLiu Jingqi## 796c412a48dSLiu Jingqi# @NumaHmatCacheOptions: 797c412a48dSLiu Jingqi# 798c412a48dSLiu Jingqi# Set the memory side cache information for a given memory domain. 799c412a48dSLiu Jingqi# 800a937b6aaSMarkus Armbruster# For more information of @NumaHmatCacheOptions, see chapter 5.2.27.5: 801a937b6aaSMarkus Armbruster# Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec. 802c412a48dSLiu Jingqi# 803c412a48dSLiu Jingqi# @node-id: the memory proximity domain to which the memory belongs. 804c412a48dSLiu Jingqi# 805c412a48dSLiu Jingqi# @size: the size of memory side cache in bytes. 806c412a48dSLiu Jingqi# 807c412a48dSLiu Jingqi# @level: the cache level described in this structure. 808c412a48dSLiu Jingqi# 809c412a48dSLiu Jingqi# @associativity: the cache associativity, 810c412a48dSLiu Jingqi# none/direct-mapped/complex(complex cache indexing). 811c412a48dSLiu Jingqi# 812c412a48dSLiu Jingqi# @policy: the write policy, none/write-back/write-through. 813c412a48dSLiu Jingqi# 814c412a48dSLiu Jingqi# @line: the cache Line size in bytes. 815c412a48dSLiu Jingqi# 816c412a48dSLiu Jingqi# Since: 5.0 817c412a48dSLiu Jingqi## 818c412a48dSLiu Jingqi{ 'struct': 'NumaHmatCacheOptions', 819c412a48dSLiu Jingqi 'data': { 820c412a48dSLiu Jingqi 'node-id': 'uint32', 821c412a48dSLiu Jingqi 'size': 'size', 822c412a48dSLiu Jingqi 'level': 'uint8', 823c412a48dSLiu Jingqi 'associativity': 'HmatCacheAssociativity', 824c412a48dSLiu Jingqi 'policy': 'HmatCacheWritePolicy', 825c412a48dSLiu Jingqi 'line': 'uint16' }} 826c412a48dSLiu Jingqi 827c412a48dSLiu Jingqi## 828d4130cbfSPhilippe Mathieu-Daudé# @memsave: 829d4130cbfSPhilippe Mathieu-Daudé# 830d4130cbfSPhilippe Mathieu-Daudé# Save a portion of guest memory to a file. 831d4130cbfSPhilippe Mathieu-Daudé# 832d4130cbfSPhilippe Mathieu-Daudé# @val: the virtual address of the guest to start from 833d4130cbfSPhilippe Mathieu-Daudé# 834d4130cbfSPhilippe Mathieu-Daudé# @size: the size of memory region to save 835d4130cbfSPhilippe Mathieu-Daudé# 836d4130cbfSPhilippe Mathieu-Daudé# @filename: the file to save the memory to as binary data 837d4130cbfSPhilippe Mathieu-Daudé# 838d4130cbfSPhilippe Mathieu-Daudé# @cpu-index: the index of the virtual CPU to use for translating the 839d4130cbfSPhilippe Mathieu-Daudé# virtual address (defaults to CPU 0) 840d4130cbfSPhilippe Mathieu-Daudé# 8419bc6e893SMarkus Armbruster# Since: 0.14 842d4130cbfSPhilippe Mathieu-Daudé# 843d461c279SJohn Snow# .. caution:: Errors were not reliably returned until 1.1. 844d4130cbfSPhilippe Mathieu-Daudé# 84514b48aaaSJohn Snow# .. qmp-example:: 846d4130cbfSPhilippe Mathieu-Daudé# 847d4130cbfSPhilippe Mathieu-Daudé# -> { "execute": "memsave", 848d4130cbfSPhilippe Mathieu-Daudé# "arguments": { "val": 10, 849d4130cbfSPhilippe Mathieu-Daudé# "size": 100, 850d4130cbfSPhilippe Mathieu-Daudé# "filename": "/tmp/virtual-mem-dump" } } 851d4130cbfSPhilippe Mathieu-Daudé# <- { "return": {} } 852d4130cbfSPhilippe Mathieu-Daudé## 853d4130cbfSPhilippe Mathieu-Daudé{ 'command': 'memsave', 854ef71d820SJosh Junon 'data': { 855ef71d820SJosh Junon 'val': 'uint64', 856ef71d820SJosh Junon 'size': 'size', 857ef71d820SJosh Junon 'filename': 'str', 858ef71d820SJosh Junon '*cpu-index': 'int' } } 859d4130cbfSPhilippe Mathieu-Daudé 860d4130cbfSPhilippe Mathieu-Daudé## 861d4130cbfSPhilippe Mathieu-Daudé# @pmemsave: 862d4130cbfSPhilippe Mathieu-Daudé# 863d4130cbfSPhilippe Mathieu-Daudé# Save a portion of guest physical memory to a file. 864d4130cbfSPhilippe Mathieu-Daudé# 865d4130cbfSPhilippe Mathieu-Daudé# @val: the physical address of the guest to start from 866d4130cbfSPhilippe Mathieu-Daudé# 867d4130cbfSPhilippe Mathieu-Daudé# @size: the size of memory region to save 868d4130cbfSPhilippe Mathieu-Daudé# 869d4130cbfSPhilippe Mathieu-Daudé# @filename: the file to save the memory to as binary data 870d4130cbfSPhilippe Mathieu-Daudé# 8719bc6e893SMarkus Armbruster# Since: 0.14 872d4130cbfSPhilippe Mathieu-Daudé# 873d461c279SJohn Snow# .. caution:: Errors were not reliably returned until 1.1. 874d4130cbfSPhilippe Mathieu-Daudé# 87514b48aaaSJohn Snow# .. qmp-example:: 876d4130cbfSPhilippe Mathieu-Daudé# 877d4130cbfSPhilippe Mathieu-Daudé# -> { "execute": "pmemsave", 878d4130cbfSPhilippe Mathieu-Daudé# "arguments": { "val": 10, 879d4130cbfSPhilippe Mathieu-Daudé# "size": 100, 880d4130cbfSPhilippe Mathieu-Daudé# "filename": "/tmp/physical-mem-dump" } } 881d4130cbfSPhilippe Mathieu-Daudé# <- { "return": {} } 882d4130cbfSPhilippe Mathieu-Daudé## 883d4130cbfSPhilippe Mathieu-Daudé{ 'command': 'pmemsave', 884ef71d820SJosh Junon 'data': { 885ef71d820SJosh Junon 'val': 'uint64', 886ef71d820SJosh Junon 'size': 'size', 887ef71d820SJosh Junon 'filename': 'str' } } 888d4130cbfSPhilippe Mathieu-Daudé 889d4130cbfSPhilippe Mathieu-Daudé## 8908ac25c84SMarkus Armbruster# @Memdev: 8918ac25c84SMarkus Armbruster# 8928ac25c84SMarkus Armbruster# Information about memory backend 8938ac25c84SMarkus Armbruster# 8948ac25c84SMarkus Armbruster# @id: backend's ID if backend has 'id' property (since 2.9) 8958ac25c84SMarkus Armbruster# 8968ac25c84SMarkus Armbruster# @size: memory backend size 8978ac25c84SMarkus Armbruster# 898157cfaf9SDavid Hildenbrand# @merge: whether memory merge support is enabled 8998ac25c84SMarkus Armbruster# 900157cfaf9SDavid Hildenbrand# @dump: whether memory backend's memory is included in a core dump 9018ac25c84SMarkus Armbruster# 902157cfaf9SDavid Hildenbrand# @prealloc: whether memory was preallocated 9038ac25c84SMarkus Armbruster# 904d300fc54SDavid Hildenbrand# @share: whether memory is private to QEMU or shared (since 6.1) 905d300fc54SDavid Hildenbrand# 906a937b6aaSMarkus Armbruster# @reserve: whether swap space (or huge pages) was reserved if 907a937b6aaSMarkus Armbruster# applicable. This corresponds to the user configuration and not 908a937b6aaSMarkus Armbruster# the actual behavior implemented in the OS to perform the 909a937b6aaSMarkus Armbruster# reservation. For example, Linux will never reserve swap space 910a937b6aaSMarkus Armbruster# for shared file mappings. (since 6.1) 91169647f9dSDavid Hildenbrand# 9128ac25c84SMarkus Armbruster# @host-nodes: host nodes for its memory policy 9138ac25c84SMarkus Armbruster# 9148ac25c84SMarkus Armbruster# @policy: memory policy of memory backend 9158ac25c84SMarkus Armbruster# 9168ac25c84SMarkus Armbruster# Since: 2.1 9178ac25c84SMarkus Armbruster## 9188ac25c84SMarkus Armbruster{ 'struct': 'Memdev', 9198ac25c84SMarkus Armbruster 'data': { 9208ac25c84SMarkus Armbruster '*id': 'str', 9218ac25c84SMarkus Armbruster 'size': 'size', 9228ac25c84SMarkus Armbruster 'merge': 'bool', 9238ac25c84SMarkus Armbruster 'dump': 'bool', 9248ac25c84SMarkus Armbruster 'prealloc': 'bool', 925d300fc54SDavid Hildenbrand 'share': 'bool', 92669647f9dSDavid Hildenbrand '*reserve': 'bool', 9278ac25c84SMarkus Armbruster 'host-nodes': ['uint16'], 9288ac25c84SMarkus Armbruster 'policy': 'HostMemPolicy' }} 9298ac25c84SMarkus Armbruster 9308ac25c84SMarkus Armbruster## 9318ac25c84SMarkus Armbruster# @query-memdev: 9328ac25c84SMarkus Armbruster# 9338ac25c84SMarkus Armbruster# Returns information for all memory backends. 9348ac25c84SMarkus Armbruster# 9358ac25c84SMarkus Armbruster# Returns: a list of @Memdev. 9368ac25c84SMarkus Armbruster# 9378ac25c84SMarkus Armbruster# Since: 2.1 9388ac25c84SMarkus Armbruster# 93914b48aaaSJohn Snow# .. qmp-example:: 9408ac25c84SMarkus Armbruster# 9418ac25c84SMarkus Armbruster# -> { "execute": "query-memdev" } 9428ac25c84SMarkus Armbruster# <- { "return": [ 9438ac25c84SMarkus Armbruster# { 9448ac25c84SMarkus Armbruster# "id": "mem1", 9458ac25c84SMarkus Armbruster# "size": 536870912, 9468ac25c84SMarkus Armbruster# "merge": false, 9478ac25c84SMarkus Armbruster# "dump": true, 9488ac25c84SMarkus Armbruster# "prealloc": false, 9497c90031dSVictor Toso# "share": false, 9508ac25c84SMarkus Armbruster# "host-nodes": [0, 1], 9518ac25c84SMarkus Armbruster# "policy": "bind" 9528ac25c84SMarkus Armbruster# }, 9538ac25c84SMarkus Armbruster# { 9548ac25c84SMarkus Armbruster# "size": 536870912, 9558ac25c84SMarkus Armbruster# "merge": false, 9568ac25c84SMarkus Armbruster# "dump": true, 9578ac25c84SMarkus Armbruster# "prealloc": true, 9587c90031dSVictor Toso# "share": false, 9598ac25c84SMarkus Armbruster# "host-nodes": [2, 3], 9608ac25c84SMarkus Armbruster# "policy": "preferred" 9618ac25c84SMarkus Armbruster# } 9628ac25c84SMarkus Armbruster# ] 9638ac25c84SMarkus Armbruster# } 9648ac25c84SMarkus Armbruster## 9658ac25c84SMarkus Armbruster{ 'command': 'query-memdev', 'returns': ['Memdev'], 'allow-preconfig': true } 9668ac25c84SMarkus Armbruster 9678ac25c84SMarkus Armbruster## 9688ac25c84SMarkus Armbruster# @CpuInstanceProperties: 9698ac25c84SMarkus Armbruster# 970d07f0efcSMarkus Armbruster# Properties identifying a CPU. 9718ac25c84SMarkus Armbruster# 9723da4aef8SNina Schoetterl-Glausch# Which members are optional and which mandatory depends on the 9733da4aef8SNina Schoetterl-Glausch# architecture and board. 9743da4aef8SNina Schoetterl-Glausch# 9750d177cddSPierre Morel# For s390x see :ref:`cpu-topology-s390x`. 9760d177cddSPierre Morel# 9773da4aef8SNina Schoetterl-Glausch# The ids other than the node-id specify the position of the CPU 9783da4aef8SNina Schoetterl-Glausch# within the CPU topology (as defined by the machine property "smp", 9793da4aef8SNina Schoetterl-Glausch# thus see also type @SMPConfiguration) 9803da4aef8SNina Schoetterl-Glausch# 9818ac25c84SMarkus Armbruster# @node-id: NUMA node ID the CPU belongs to 982a937b6aaSMarkus Armbruster# 9835de1aff2SPierre Morel# @drawer-id: drawer number within CPU topology the CPU belongs to 9845de1aff2SPierre Morel# (since 8.2) 9855de1aff2SPierre Morel# 9865de1aff2SPierre Morel# @book-id: book number within parent container the CPU belongs to 9875de1aff2SPierre Morel# (since 8.2) 9885de1aff2SPierre Morel# 9895de1aff2SPierre Morel# @socket-id: socket number within parent container the CPU belongs to 990a937b6aaSMarkus Armbruster# 9913da4aef8SNina Schoetterl-Glausch# @die-id: die number within the parent container the CPU belongs to 9923da4aef8SNina Schoetterl-Glausch# (since 4.1) 993a937b6aaSMarkus Armbruster# 9943da4aef8SNina Schoetterl-Glausch# @cluster-id: cluster number within the parent container the CPU 9953da4aef8SNina Schoetterl-Glausch# belongs to (since 7.1) 996a937b6aaSMarkus Armbruster# 99701bed0ffSMarkus Armbruster# @module-id: module number within the parent container the CPU 99801bed0ffSMarkus Armbruster# belongs to (since 9.1) 999989bb312SZhao Liu# 1000209e64d9SMarkus Armbruster# @core-id: core number within the parent container the CPU belongs to 1001a937b6aaSMarkus Armbruster# 10023da4aef8SNina Schoetterl-Glausch# @thread-id: thread number within the core the CPU belongs to 10038ac25c84SMarkus Armbruster# 10048ac25c84SMarkus Armbruster# Since: 2.7 10058ac25c84SMarkus Armbruster## 10068ac25c84SMarkus Armbruster{ 'struct': 'CpuInstanceProperties', 10073da4aef8SNina Schoetterl-Glausch # Keep these in sync with the properties device_add accepts 10088ac25c84SMarkus Armbruster 'data': { '*node-id': 'int', 10095de1aff2SPierre Morel '*drawer-id': 'int', 10105de1aff2SPierre Morel '*book-id': 'int', 10118ac25c84SMarkus Armbruster '*socket-id': 'int', 1012176d2cdaSLike Xu '*die-id': 'int', 10131dcf7001SGavin Shan '*cluster-id': 'int', 1014989bb312SZhao Liu '*module-id': 'int', 10158ac25c84SMarkus Armbruster '*core-id': 'int', 10168ac25c84SMarkus Armbruster '*thread-id': 'int' 10178ac25c84SMarkus Armbruster } 10188ac25c84SMarkus Armbruster} 10198ac25c84SMarkus Armbruster 10208ac25c84SMarkus Armbruster## 10218ac25c84SMarkus Armbruster# @HotpluggableCPU: 10228ac25c84SMarkus Armbruster# 10238ac25c84SMarkus Armbruster# @type: CPU object type for usage with device_add command 1024a937b6aaSMarkus Armbruster# 1025d07f0efcSMarkus Armbruster# @props: list of properties to pass for hotplugging a CPU with 1026d07f0efcSMarkus Armbruster# device_add 1027a937b6aaSMarkus Armbruster# 1028a937b6aaSMarkus Armbruster# @vcpus-count: number of logical VCPU threads @HotpluggableCPU 1029a937b6aaSMarkus Armbruster# provides 1030a937b6aaSMarkus Armbruster# 1031a937b6aaSMarkus Armbruster# @qom-path: link to existing CPU object if CPU is present or omitted 1032a937b6aaSMarkus Armbruster# if CPU is not present. 10338ac25c84SMarkus Armbruster# 1034d07f0efcSMarkus Armbruster# .. note:: Management should be prepared to pass through additional 1035d07f0efcSMarkus Armbruster# properties with device_add. 1036d07f0efcSMarkus Armbruster# 10378ac25c84SMarkus Armbruster# Since: 2.7 10388ac25c84SMarkus Armbruster## 10398ac25c84SMarkus Armbruster{ 'struct': 'HotpluggableCPU', 10408ac25c84SMarkus Armbruster 'data': { 'type': 'str', 10418ac25c84SMarkus Armbruster 'vcpus-count': 'int', 10428ac25c84SMarkus Armbruster 'props': 'CpuInstanceProperties', 10438ac25c84SMarkus Armbruster '*qom-path': 'str' 10448ac25c84SMarkus Armbruster } 10458ac25c84SMarkus Armbruster} 10468ac25c84SMarkus Armbruster 10478ac25c84SMarkus Armbruster## 10488ac25c84SMarkus Armbruster# @query-hotpluggable-cpus: 10498ac25c84SMarkus Armbruster# 10508ac25c84SMarkus Armbruster# TODO: Better documentation; currently there is none. 10518ac25c84SMarkus Armbruster# 10528ac25c84SMarkus Armbruster# Returns: a list of HotpluggableCPU objects. 10538ac25c84SMarkus Armbruster# 10548ac25c84SMarkus Armbruster# Since: 2.7 10558ac25c84SMarkus Armbruster# 10566f07c59fSJohn Snow# .. qmp-example:: 10576f07c59fSJohn Snow# :annotated: 10588ac25c84SMarkus Armbruster# 10596f07c59fSJohn Snow# For pseries machine type started with 10606f07c59fSJohn Snow# ``-smp 2,cores=2,maxcpus=4 -cpu POWER8``:: 10618ac25c84SMarkus Armbruster# 10628ac25c84SMarkus Armbruster# -> { "execute": "query-hotpluggable-cpus" } 10638ac25c84SMarkus Armbruster# <- {"return": [ 1064b4c32cbfSVictor Toso# { "props": { "core-id": 8 }, "type": "POWER8-spapr-cpu-core", 10658ac25c84SMarkus Armbruster# "vcpus-count": 1 }, 1066b4c32cbfSVictor Toso# { "props": { "core-id": 0 }, "type": "POWER8-spapr-cpu-core", 10678ac25c84SMarkus Armbruster# "vcpus-count": 1, "qom-path": "/machine/unattached/device[0]"} 10689f2b8488SJohn Snow# ]} 10698ac25c84SMarkus Armbruster# 10706f07c59fSJohn Snow# .. qmp-example:: 10716f07c59fSJohn Snow# :annotated: 10726f07c59fSJohn Snow# 10736f07c59fSJohn Snow# For pc machine type started with ``-smp 1,maxcpus=2``:: 10748ac25c84SMarkus Armbruster# 10758ac25c84SMarkus Armbruster# -> { "execute": "query-hotpluggable-cpus" } 10768ac25c84SMarkus Armbruster# <- {"return": [ 10778ac25c84SMarkus Armbruster# { 10788ac25c84SMarkus Armbruster# "type": "qemu64-x86_64-cpu", "vcpus-count": 1, 10798ac25c84SMarkus Armbruster# "props": {"core-id": 0, "socket-id": 1, "thread-id": 0} 10808ac25c84SMarkus Armbruster# }, 10818ac25c84SMarkus Armbruster# { 10828ac25c84SMarkus Armbruster# "qom-path": "/machine/unattached/device[0]", 10838ac25c84SMarkus Armbruster# "type": "qemu64-x86_64-cpu", "vcpus-count": 1, 10848ac25c84SMarkus Armbruster# "props": {"core-id": 0, "socket-id": 0, "thread-id": 0} 10858ac25c84SMarkus Armbruster# } 10868ac25c84SMarkus Armbruster# ]} 10878ac25c84SMarkus Armbruster# 10886f07c59fSJohn Snow# .. qmp-example:: 10896f07c59fSJohn Snow# :annotated: 10906f07c59fSJohn Snow# 10916f07c59fSJohn Snow# For s390x-virtio-ccw machine type started with 10926f07c59fSJohn Snow# ``-smp 1,maxcpus=2 -cpu qemu`` (Since: 2.11):: 10938ac25c84SMarkus Armbruster# 10948ac25c84SMarkus Armbruster# -> { "execute": "query-hotpluggable-cpus" } 10958ac25c84SMarkus Armbruster# <- {"return": [ 10968ac25c84SMarkus Armbruster# { 10978ac25c84SMarkus Armbruster# "type": "qemu-s390x-cpu", "vcpus-count": 1, 10988ac25c84SMarkus Armbruster# "props": { "core-id": 1 } 10998ac25c84SMarkus Armbruster# }, 11008ac25c84SMarkus Armbruster# { 11018ac25c84SMarkus Armbruster# "qom-path": "/machine/unattached/device[0]", 11028ac25c84SMarkus Armbruster# "type": "qemu-s390x-cpu", "vcpus-count": 1, 11038ac25c84SMarkus Armbruster# "props": { "core-id": 0 } 11048ac25c84SMarkus Armbruster# } 11058ac25c84SMarkus Armbruster# ]} 11068ac25c84SMarkus Armbruster## 11078ac25c84SMarkus Armbruster{ 'command': 'query-hotpluggable-cpus', 'returns': ['HotpluggableCPU'], 11088ac25c84SMarkus Armbruster 'allow-preconfig': true } 11098ac25c84SMarkus Armbruster 11108ac25c84SMarkus Armbruster## 11118ac25c84SMarkus Armbruster# @set-numa-node: 11128ac25c84SMarkus Armbruster# 1113a937b6aaSMarkus Armbruster# Runtime equivalent of '-numa' CLI option, available at preconfigure 1114a937b6aaSMarkus Armbruster# stage to configure numa mapping before initializing machine. 11158ac25c84SMarkus Armbruster# 1116433a4fdcSMarkus Armbruster# Since: 3.0 11178ac25c84SMarkus Armbruster## 11188ac25c84SMarkus Armbruster{ 'command': 'set-numa-node', 'boxed': true, 11198ac25c84SMarkus Armbruster 'data': 'NumaOptions', 11208ac25c84SMarkus Armbruster 'allow-preconfig': true 11218ac25c84SMarkus Armbruster} 1122a83e24baSPhilippe Mathieu-Daudé 1123a83e24baSPhilippe Mathieu-Daudé## 1124a83e24baSPhilippe Mathieu-Daudé# @balloon: 1125a83e24baSPhilippe Mathieu-Daudé# 1126a83e24baSPhilippe Mathieu-Daudé# Request the balloon driver to change its balloon size. 1127a83e24baSPhilippe Mathieu-Daudé# 1128a937b6aaSMarkus Armbruster# @value: the target logical size of the VM in bytes. We can deduce 1129a937b6aaSMarkus Armbruster# the size of the balloon using this formula: 1130826bd069SPeter Maydell# 1131a83e24baSPhilippe Mathieu-Daudé# logical_vm_size = vm_ram_size - balloon_size 1132826bd069SPeter Maydell# 1133a83e24baSPhilippe Mathieu-Daudé# From it we have: balloon_size = vm_ram_size - @value 1134a83e24baSPhilippe Mathieu-Daudé# 11352746f060SMarkus Armbruster# Errors: 1136e6ab40feSMarkus Armbruster# - If the balloon driver is enabled but not functional because 1137e6ab40feSMarkus Armbruster# the KVM kernel module cannot support it, KVMMissingCap 1138a83e24baSPhilippe Mathieu-Daudé# - If no balloon device is present, DeviceNotActive 1139a83e24baSPhilippe Mathieu-Daudé# 1140d461c279SJohn Snow# .. note:: This command just issues a request to the guest. When it 114101bed0ffSMarkus Armbruster# returns, the balloon size may not have changed. A guest can 114201bed0ffSMarkus Armbruster# change the balloon size independent of this command. 1143a83e24baSPhilippe Mathieu-Daudé# 11449bc6e893SMarkus Armbruster# Since: 0.14 1145a83e24baSPhilippe Mathieu-Daudé# 11466f07c59fSJohn Snow# .. qmp-example:: 11476f07c59fSJohn Snow# :annotated: 11486f07c59fSJohn Snow# 11496f07c59fSJohn Snow# :: 1150a83e24baSPhilippe Mathieu-Daudé# 1151a83e24baSPhilippe Mathieu-Daudé# -> { "execute": "balloon", "arguments": { "value": 536870912 } } 1152a83e24baSPhilippe Mathieu-Daudé# <- { "return": {} } 1153a83e24baSPhilippe Mathieu-Daudé# 1154a83e24baSPhilippe Mathieu-Daudé# With a 2.5GiB guest this command inflated the ballon to 3GiB. 1155a83e24baSPhilippe Mathieu-Daudé## 1156a83e24baSPhilippe Mathieu-Daudé{ 'command': 'balloon', 'data': {'value': 'int'} } 1157a83e24baSPhilippe Mathieu-Daudé 1158a83e24baSPhilippe Mathieu-Daudé## 1159a83e24baSPhilippe Mathieu-Daudé# @BalloonInfo: 1160a83e24baSPhilippe Mathieu-Daudé# 1161a83e24baSPhilippe Mathieu-Daudé# Information about the guest balloon device. 1162a83e24baSPhilippe Mathieu-Daudé# 1163a937b6aaSMarkus Armbruster# @actual: the logical size of the VM in bytes Formula used: 1164a937b6aaSMarkus Armbruster# logical_vm_size = vm_ram_size - balloon_size 1165a83e24baSPhilippe Mathieu-Daudé# 11669bc6e893SMarkus Armbruster# Since: 0.14 1167a83e24baSPhilippe Mathieu-Daudé## 1168a83e24baSPhilippe Mathieu-Daudé{ 'struct': 'BalloonInfo', 'data': {'actual': 'int' } } 1169a83e24baSPhilippe Mathieu-Daudé 1170a83e24baSPhilippe Mathieu-Daudé## 1171a83e24baSPhilippe Mathieu-Daudé# @query-balloon: 1172a83e24baSPhilippe Mathieu-Daudé# 1173a83e24baSPhilippe Mathieu-Daudé# Return information about the balloon device. 1174a83e24baSPhilippe Mathieu-Daudé# 1175a937b6aaSMarkus Armbruster# Returns: 1176e2c1dcbcSMarkus Armbruster# @BalloonInfo 11772746f060SMarkus Armbruster# 11782746f060SMarkus Armbruster# Errors: 1179e6ab40feSMarkus Armbruster# - If the balloon driver is enabled but not functional because 1180e6ab40feSMarkus Armbruster# the KVM kernel module cannot support it, KVMMissingCap 1181a83e24baSPhilippe Mathieu-Daudé# - If no balloon device is present, DeviceNotActive 1182a83e24baSPhilippe Mathieu-Daudé# 11839bc6e893SMarkus Armbruster# Since: 0.14 1184a83e24baSPhilippe Mathieu-Daudé# 118514b48aaaSJohn Snow# .. qmp-example:: 1186a83e24baSPhilippe Mathieu-Daudé# 1187a83e24baSPhilippe Mathieu-Daudé# -> { "execute": "query-balloon" } 1188a83e24baSPhilippe Mathieu-Daudé# <- { "return": { 11895d07159dSVictor Toso# "actual": 1073741824 1190a83e24baSPhilippe Mathieu-Daudé# } 1191a83e24baSPhilippe Mathieu-Daudé# } 1192a83e24baSPhilippe Mathieu-Daudé## 1193a83e24baSPhilippe Mathieu-Daudé{ 'command': 'query-balloon', 'returns': 'BalloonInfo' } 1194a83e24baSPhilippe Mathieu-Daudé 1195a83e24baSPhilippe Mathieu-Daudé## 1196a83e24baSPhilippe Mathieu-Daudé# @BALLOON_CHANGE: 1197a83e24baSPhilippe Mathieu-Daudé# 1198a937b6aaSMarkus Armbruster# Emitted when the guest changes the actual BALLOON level. This value 1199a937b6aaSMarkus Armbruster# is equivalent to the @actual field return by the 'query-balloon' 1200a937b6aaSMarkus Armbruster# command 1201a83e24baSPhilippe Mathieu-Daudé# 1202a937b6aaSMarkus Armbruster# @actual: the logical size of the VM in bytes Formula used: 1203a937b6aaSMarkus Armbruster# logical_vm_size = vm_ram_size - balloon_size 1204a83e24baSPhilippe Mathieu-Daudé# 1205d461c279SJohn Snow# .. note:: This event is rate-limited. 1206a83e24baSPhilippe Mathieu-Daudé# 1207a83e24baSPhilippe Mathieu-Daudé# Since: 1.2 1208a83e24baSPhilippe Mathieu-Daudé# 120914b48aaaSJohn Snow# .. qmp-example:: 1210a83e24baSPhilippe Mathieu-Daudé# 1211a83e24baSPhilippe Mathieu-Daudé# <- { "event": "BALLOON_CHANGE", 1212a83e24baSPhilippe Mathieu-Daudé# "data": { "actual": 944766976 }, 1213a83e24baSPhilippe Mathieu-Daudé# "timestamp": { "seconds": 1267020223, "microseconds": 435656 } } 1214a83e24baSPhilippe Mathieu-Daudé## 1215a83e24baSPhilippe Mathieu-Daudé{ 'event': 'BALLOON_CHANGE', 1216a83e24baSPhilippe Mathieu-Daudé 'data': { 'actual': 'int' } } 1217b495ec6cSPhilippe Mathieu-Daudé 1218b495ec6cSPhilippe Mathieu-Daudé## 1219259ebed4SMaciej S. Szmigiero# @HvBalloonInfo: 1220259ebed4SMaciej S. Szmigiero# 1221259ebed4SMaciej S. Szmigiero# hv-balloon guest-provided memory status information. 1222259ebed4SMaciej S. Szmigiero# 1223259ebed4SMaciej S. Szmigiero# @committed: the amount of memory in use inside the guest plus the 1224259ebed4SMaciej S. Szmigiero# amount of the memory unusable inside the guest (ballooned out, 1225259ebed4SMaciej S. Szmigiero# offline, etc.) 1226259ebed4SMaciej S. Szmigiero# 1227259ebed4SMaciej S. Szmigiero# @available: the amount of the memory inside the guest available for 1228259ebed4SMaciej S. Szmigiero# new allocations ("free") 1229259ebed4SMaciej S. Szmigiero# 1230259ebed4SMaciej S. Szmigiero# Since: 8.2 1231259ebed4SMaciej S. Szmigiero## 1232259ebed4SMaciej S. Szmigiero{ 'struct': 'HvBalloonInfo', 1233259ebed4SMaciej S. Szmigiero 'data': { 'committed': 'size', 'available': 'size' } } 1234259ebed4SMaciej S. Szmigiero 1235259ebed4SMaciej S. Szmigiero## 1236259ebed4SMaciej S. Szmigiero# @query-hv-balloon-status-report: 1237259ebed4SMaciej S. Szmigiero# 1238209e64d9SMarkus Armbruster# Returns the hv-balloon driver data contained in the last received 1239209e64d9SMarkus Armbruster# "STATUS" message from the guest. 1240259ebed4SMaciej S. Szmigiero# 1241259ebed4SMaciej S. Szmigiero# Returns: 1242e2c1dcbcSMarkus Armbruster# @HvBalloonInfo 12432746f060SMarkus Armbruster# 12442746f060SMarkus Armbruster# Errors: 1245e6ab40feSMarkus Armbruster# - If no hv-balloon device is present, guest memory status 1246e6ab40feSMarkus Armbruster# reporting is not enabled or no guest memory status report 1247e6ab40feSMarkus Armbruster# received yet, GenericError 1248259ebed4SMaciej S. Szmigiero# 1249259ebed4SMaciej S. Szmigiero# Since: 8.2 1250259ebed4SMaciej S. Szmigiero# 125114b48aaaSJohn Snow# .. qmp-example:: 1252259ebed4SMaciej S. Szmigiero# 1253259ebed4SMaciej S. Szmigiero# -> { "execute": "query-hv-balloon-status-report" } 1254259ebed4SMaciej S. Szmigiero# <- { "return": { 1255259ebed4SMaciej S. Szmigiero# "committed": 816640000, 1256259ebed4SMaciej S. Szmigiero# "available": 3333054464 1257259ebed4SMaciej S. Szmigiero# } 1258259ebed4SMaciej S. Szmigiero# } 1259259ebed4SMaciej S. Szmigiero## 1260259ebed4SMaciej S. Szmigiero{ 'command': 'query-hv-balloon-status-report', 'returns': 'HvBalloonInfo' } 1261259ebed4SMaciej S. Szmigiero 1262259ebed4SMaciej S. Szmigiero## 1263259ebed4SMaciej S. Szmigiero# @HV_BALLOON_STATUS_REPORT: 1264259ebed4SMaciej S. Szmigiero# 1265259ebed4SMaciej S. Szmigiero# Emitted when the hv-balloon driver receives a "STATUS" message from 1266259ebed4SMaciej S. Szmigiero# the guest. 1267259ebed4SMaciej S. Szmigiero# 1268d461c279SJohn Snow# .. note:: This event is rate-limited. 1269259ebed4SMaciej S. Szmigiero# 1270259ebed4SMaciej S. Szmigiero# Since: 8.2 1271259ebed4SMaciej S. Szmigiero# 127214b48aaaSJohn Snow# .. qmp-example:: 1273259ebed4SMaciej S. Szmigiero# 1274259ebed4SMaciej S. Szmigiero# <- { "event": "HV_BALLOON_STATUS_REPORT", 1275259ebed4SMaciej S. Szmigiero# "data": { "committed": 816640000, "available": 3333054464 }, 1276259ebed4SMaciej S. Szmigiero# "timestamp": { "seconds": 1600295492, "microseconds": 661044 } } 1277259ebed4SMaciej S. Szmigiero## 1278259ebed4SMaciej S. Szmigiero{ 'event': 'HV_BALLOON_STATUS_REPORT', 1279259ebed4SMaciej S. Szmigiero 'data': 'HvBalloonInfo' } 1280259ebed4SMaciej S. Szmigiero 1281259ebed4SMaciej S. Szmigiero## 1282b495ec6cSPhilippe Mathieu-Daudé# @MemoryInfo: 1283b495ec6cSPhilippe Mathieu-Daudé# 1284b495ec6cSPhilippe Mathieu-Daudé# Actual memory information in bytes. 1285b495ec6cSPhilippe Mathieu-Daudé# 1286b495ec6cSPhilippe Mathieu-Daudé# @base-memory: size of "base" memory specified with command line 1287b495ec6cSPhilippe Mathieu-Daudé# option -m. 1288b495ec6cSPhilippe Mathieu-Daudé# 1289a937b6aaSMarkus Armbruster# @plugged-memory: size of memory that can be hot-unplugged. This 1290a937b6aaSMarkus Armbruster# field is omitted if target doesn't support memory hotplug (i.e. 1291a937b6aaSMarkus Armbruster# CONFIG_MEM_DEVICE not defined at build time). 1292b495ec6cSPhilippe Mathieu-Daudé# 12939bc6e893SMarkus Armbruster# Since: 2.11 1294b495ec6cSPhilippe Mathieu-Daudé## 1295b495ec6cSPhilippe Mathieu-Daudé{ 'struct': 'MemoryInfo', 1296b495ec6cSPhilippe Mathieu-Daudé 'data' : { 'base-memory': 'size', '*plugged-memory': 'size' } } 1297b495ec6cSPhilippe Mathieu-Daudé 1298b495ec6cSPhilippe Mathieu-Daudé## 1299b495ec6cSPhilippe Mathieu-Daudé# @query-memory-size-summary: 1300b495ec6cSPhilippe Mathieu-Daudé# 1301a937b6aaSMarkus Armbruster# Return the amount of initially allocated and present hotpluggable 1302a937b6aaSMarkus Armbruster# (if enabled) memory in bytes. 1303b495ec6cSPhilippe Mathieu-Daudé# 130414b48aaaSJohn Snow# .. qmp-example:: 1305b495ec6cSPhilippe Mathieu-Daudé# 1306b495ec6cSPhilippe Mathieu-Daudé# -> { "execute": "query-memory-size-summary" } 1307b495ec6cSPhilippe Mathieu-Daudé# <- { "return": { "base-memory": 4294967296, "plugged-memory": 0 } } 1308b495ec6cSPhilippe Mathieu-Daudé# 13099bc6e893SMarkus Armbruster# Since: 2.11 1310b495ec6cSPhilippe Mathieu-Daudé## 1311b495ec6cSPhilippe Mathieu-Daudé{ 'command': 'query-memory-size-summary', 'returns': 'MemoryInfo' } 1312b495ec6cSPhilippe Mathieu-Daudé 1313b495ec6cSPhilippe Mathieu-Daudé## 1314b495ec6cSPhilippe Mathieu-Daudé# @PCDIMMDeviceInfo: 1315b495ec6cSPhilippe Mathieu-Daudé# 1316b495ec6cSPhilippe Mathieu-Daudé# PCDIMMDevice state information 1317b495ec6cSPhilippe Mathieu-Daudé# 1318b495ec6cSPhilippe Mathieu-Daudé# @id: device's ID 1319b495ec6cSPhilippe Mathieu-Daudé# 1320b495ec6cSPhilippe Mathieu-Daudé# @addr: physical address, where device is mapped 1321b495ec6cSPhilippe Mathieu-Daudé# 1322b495ec6cSPhilippe Mathieu-Daudé# @size: size of memory that the device provides 1323b495ec6cSPhilippe Mathieu-Daudé# 1324b495ec6cSPhilippe Mathieu-Daudé# @slot: slot number at which device is plugged in 1325b495ec6cSPhilippe Mathieu-Daudé# 1326b495ec6cSPhilippe Mathieu-Daudé# @node: NUMA node number where device is plugged in 1327b495ec6cSPhilippe Mathieu-Daudé# 1328b495ec6cSPhilippe Mathieu-Daudé# @memdev: memory backend linked with device 1329b495ec6cSPhilippe Mathieu-Daudé# 1330b495ec6cSPhilippe Mathieu-Daudé# @hotplugged: true if device was hotplugged 1331b495ec6cSPhilippe Mathieu-Daudé# 1332a937b6aaSMarkus Armbruster# @hotpluggable: true if device if could be added/removed while 1333a937b6aaSMarkus Armbruster# machine is running 1334b495ec6cSPhilippe Mathieu-Daudé# 1335b495ec6cSPhilippe Mathieu-Daudé# Since: 2.1 1336b495ec6cSPhilippe Mathieu-Daudé## 1337b495ec6cSPhilippe Mathieu-Daudé{ 'struct': 'PCDIMMDeviceInfo', 1338b495ec6cSPhilippe Mathieu-Daudé 'data': { '*id': 'str', 1339b495ec6cSPhilippe Mathieu-Daudé 'addr': 'int', 1340b495ec6cSPhilippe Mathieu-Daudé 'size': 'int', 1341b495ec6cSPhilippe Mathieu-Daudé 'slot': 'int', 1342b495ec6cSPhilippe Mathieu-Daudé 'node': 'int', 1343b495ec6cSPhilippe Mathieu-Daudé 'memdev': 'str', 1344b495ec6cSPhilippe Mathieu-Daudé 'hotplugged': 'bool', 1345b495ec6cSPhilippe Mathieu-Daudé 'hotpluggable': 'bool' 1346b495ec6cSPhilippe Mathieu-Daudé } 1347b495ec6cSPhilippe Mathieu-Daudé} 1348b495ec6cSPhilippe Mathieu-Daudé 1349b495ec6cSPhilippe Mathieu-Daudé## 1350b495ec6cSPhilippe Mathieu-Daudé# @VirtioPMEMDeviceInfo: 1351b495ec6cSPhilippe Mathieu-Daudé# 1352b495ec6cSPhilippe Mathieu-Daudé# VirtioPMEM state information 1353b495ec6cSPhilippe Mathieu-Daudé# 1354b495ec6cSPhilippe Mathieu-Daudé# @id: device's ID 1355b495ec6cSPhilippe Mathieu-Daudé# 1356b495ec6cSPhilippe Mathieu-Daudé# @memaddr: physical address in memory, where device is mapped 1357b495ec6cSPhilippe Mathieu-Daudé# 1358b495ec6cSPhilippe Mathieu-Daudé# @size: size of memory that the device provides 1359b495ec6cSPhilippe Mathieu-Daudé# 1360b495ec6cSPhilippe Mathieu-Daudé# @memdev: memory backend linked with device 1361b495ec6cSPhilippe Mathieu-Daudé# 1362b495ec6cSPhilippe Mathieu-Daudé# Since: 4.1 1363b495ec6cSPhilippe Mathieu-Daudé## 1364b495ec6cSPhilippe Mathieu-Daudé{ 'struct': 'VirtioPMEMDeviceInfo', 1365b495ec6cSPhilippe Mathieu-Daudé 'data': { '*id': 'str', 1366b495ec6cSPhilippe Mathieu-Daudé 'memaddr': 'size', 1367b495ec6cSPhilippe Mathieu-Daudé 'size': 'size', 1368b495ec6cSPhilippe Mathieu-Daudé 'memdev': 'str' 1369b495ec6cSPhilippe Mathieu-Daudé } 1370b495ec6cSPhilippe Mathieu-Daudé} 1371b495ec6cSPhilippe Mathieu-Daudé 1372b495ec6cSPhilippe Mathieu-Daudé## 1373b495ec6cSPhilippe Mathieu-Daudé# @VirtioMEMDeviceInfo: 1374b495ec6cSPhilippe Mathieu-Daudé# 1375b495ec6cSPhilippe Mathieu-Daudé# VirtioMEMDevice state information 1376b495ec6cSPhilippe Mathieu-Daudé# 1377b495ec6cSPhilippe Mathieu-Daudé# @id: device's ID 1378b495ec6cSPhilippe Mathieu-Daudé# 1379b495ec6cSPhilippe Mathieu-Daudé# @memaddr: physical address in memory, where device is mapped 1380b495ec6cSPhilippe Mathieu-Daudé# 1381b495ec6cSPhilippe Mathieu-Daudé# @requested-size: the user requested size of the device 1382b495ec6cSPhilippe Mathieu-Daudé# 1383b495ec6cSPhilippe Mathieu-Daudé# @size: the (current) size of memory that the device provides 1384b495ec6cSPhilippe Mathieu-Daudé# 1385b495ec6cSPhilippe Mathieu-Daudé# @max-size: the maximum size of memory that the device can provide 1386b495ec6cSPhilippe Mathieu-Daudé# 1387b495ec6cSPhilippe Mathieu-Daudé# @block-size: the block size of memory that the device provides 1388b495ec6cSPhilippe Mathieu-Daudé# 1389b495ec6cSPhilippe Mathieu-Daudé# @node: NUMA node number where device is assigned to 1390b495ec6cSPhilippe Mathieu-Daudé# 1391b495ec6cSPhilippe Mathieu-Daudé# @memdev: memory backend linked with the region 1392b495ec6cSPhilippe Mathieu-Daudé# 1393b495ec6cSPhilippe Mathieu-Daudé# Since: 5.1 1394b495ec6cSPhilippe Mathieu-Daudé## 1395b495ec6cSPhilippe Mathieu-Daudé{ 'struct': 'VirtioMEMDeviceInfo', 1396b495ec6cSPhilippe Mathieu-Daudé 'data': { '*id': 'str', 1397b495ec6cSPhilippe Mathieu-Daudé 'memaddr': 'size', 1398b495ec6cSPhilippe Mathieu-Daudé 'requested-size': 'size', 1399b495ec6cSPhilippe Mathieu-Daudé 'size': 'size', 1400b495ec6cSPhilippe Mathieu-Daudé 'max-size': 'size', 1401b495ec6cSPhilippe Mathieu-Daudé 'block-size': 'size', 1402b495ec6cSPhilippe Mathieu-Daudé 'node': 'int', 1403b495ec6cSPhilippe Mathieu-Daudé 'memdev': 'str' 1404b495ec6cSPhilippe Mathieu-Daudé } 1405b495ec6cSPhilippe Mathieu-Daudé} 1406b495ec6cSPhilippe Mathieu-Daudé 1407b495ec6cSPhilippe Mathieu-Daudé## 1408a7c565a9SYang Zhong# @SgxEPCDeviceInfo: 1409a7c565a9SYang Zhong# 1410a7c565a9SYang Zhong# Sgx EPC state information 1411a7c565a9SYang Zhong# 1412a7c565a9SYang Zhong# @id: device's ID 1413a7c565a9SYang Zhong# 1414a7c565a9SYang Zhong# @memaddr: physical address in memory, where device is mapped 1415a7c565a9SYang Zhong# 1416a7c565a9SYang Zhong# @size: size of memory that the device provides 1417a7c565a9SYang Zhong# 1418a7c565a9SYang Zhong# @memdev: memory backend linked with device 1419a7c565a9SYang Zhong# 1420a66bd91fSYang Zhong# @node: the numa node (Since: 7.0) 142111058123SYang Zhong# 1422a7c565a9SYang Zhong# Since: 6.2 1423a7c565a9SYang Zhong## 1424a7c565a9SYang Zhong{ 'struct': 'SgxEPCDeviceInfo', 1425a7c565a9SYang Zhong 'data': { '*id': 'str', 1426a7c565a9SYang Zhong 'memaddr': 'size', 1427a7c565a9SYang Zhong 'size': 'size', 142811058123SYang Zhong 'node': 'int', 1429a7c565a9SYang Zhong 'memdev': 'str' 1430a7c565a9SYang Zhong } 1431a7c565a9SYang Zhong} 1432a7c565a9SYang Zhong 1433a7c565a9SYang Zhong## 143416dff2f9SMaciej S. Szmigiero# @HvBalloonDeviceInfo: 143516dff2f9SMaciej S. Szmigiero# 143616dff2f9SMaciej S. Szmigiero# hv-balloon provided memory state information 143716dff2f9SMaciej S. Szmigiero# 143816dff2f9SMaciej S. Szmigiero# @id: device's ID 143916dff2f9SMaciej S. Szmigiero# 144016dff2f9SMaciej S. Szmigiero# @memaddr: physical address in memory, where device is mapped 144116dff2f9SMaciej S. Szmigiero# 144216dff2f9SMaciej S. Szmigiero# @max-size: the maximum size of memory that the device can provide 144316dff2f9SMaciej S. Szmigiero# 144416dff2f9SMaciej S. Szmigiero# @memdev: memory backend linked with device 144516dff2f9SMaciej S. Szmigiero# 144616dff2f9SMaciej S. Szmigiero# Since: 8.2 144716dff2f9SMaciej S. Szmigiero## 144816dff2f9SMaciej S. Szmigiero{ 'struct': 'HvBalloonDeviceInfo', 144916dff2f9SMaciej S. Szmigiero 'data': { '*id': 'str', 145016dff2f9SMaciej S. Szmigiero '*memaddr': 'size', 145116dff2f9SMaciej S. Szmigiero 'max-size': 'size', 145216dff2f9SMaciej S. Szmigiero '*memdev': 'str' 145316dff2f9SMaciej S. Szmigiero } 145416dff2f9SMaciej S. Szmigiero} 145516dff2f9SMaciej S. Szmigiero 145616dff2f9SMaciej S. Szmigiero## 1457db6a252bSMarkus Armbruster# @MemoryDeviceInfoKind: 1458db6a252bSMarkus Armbruster# 145986bf13aeSMarkus Armbruster# @nvdimm: since 2.12 146086bf13aeSMarkus Armbruster# 146186bf13aeSMarkus Armbruster# @virtio-pmem: since 4.1 146286bf13aeSMarkus Armbruster# 146386bf13aeSMarkus Armbruster# @virtio-mem: since 5.1 146486bf13aeSMarkus Armbruster# 146586bf13aeSMarkus Armbruster# @sgx-epc: since 6.2. 146686bf13aeSMarkus Armbruster# 146716dff2f9SMaciej S. Szmigiero# @hv-balloon: since 8.2. 146816dff2f9SMaciej S. Szmigiero# 1469db6a252bSMarkus Armbruster# Since: 2.1 1470db6a252bSMarkus Armbruster## 1471db6a252bSMarkus Armbruster{ 'enum': 'MemoryDeviceInfoKind', 147216dff2f9SMaciej S. Szmigiero 'data': [ 'dimm', 'nvdimm', 'virtio-pmem', 'virtio-mem', 'sgx-epc', 147316dff2f9SMaciej S. Szmigiero 'hv-balloon' ] } 1474db6a252bSMarkus Armbruster 1475db6a252bSMarkus Armbruster## 1476db6a252bSMarkus Armbruster# @PCDIMMDeviceInfoWrapper: 1477db6a252bSMarkus Armbruster# 14782fecccbcSMarkus Armbruster# @data: PCDIMMDevice state information 14792fecccbcSMarkus Armbruster# 1480db6a252bSMarkus Armbruster# Since: 2.1 1481db6a252bSMarkus Armbruster## 1482db6a252bSMarkus Armbruster{ 'struct': 'PCDIMMDeviceInfoWrapper', 1483db6a252bSMarkus Armbruster 'data': { 'data': 'PCDIMMDeviceInfo' } } 1484db6a252bSMarkus Armbruster 1485db6a252bSMarkus Armbruster## 1486db6a252bSMarkus Armbruster# @VirtioPMEMDeviceInfoWrapper: 1487db6a252bSMarkus Armbruster# 14882fecccbcSMarkus Armbruster# @data: VirtioPMEM state information 14892fecccbcSMarkus Armbruster# 1490db6a252bSMarkus Armbruster# Since: 2.1 1491db6a252bSMarkus Armbruster## 1492db6a252bSMarkus Armbruster{ 'struct': 'VirtioPMEMDeviceInfoWrapper', 1493db6a252bSMarkus Armbruster 'data': { 'data': 'VirtioPMEMDeviceInfo' } } 1494db6a252bSMarkus Armbruster 1495db6a252bSMarkus Armbruster## 1496db6a252bSMarkus Armbruster# @VirtioMEMDeviceInfoWrapper: 1497db6a252bSMarkus Armbruster# 14982fecccbcSMarkus Armbruster# @data: VirtioMEMDevice state information 14992fecccbcSMarkus Armbruster# 1500db6a252bSMarkus Armbruster# Since: 2.1 1501db6a252bSMarkus Armbruster## 1502db6a252bSMarkus Armbruster{ 'struct': 'VirtioMEMDeviceInfoWrapper', 1503db6a252bSMarkus Armbruster 'data': { 'data': 'VirtioMEMDeviceInfo' } } 1504db6a252bSMarkus Armbruster 1505db6a252bSMarkus Armbruster## 1506a7c565a9SYang Zhong# @SgxEPCDeviceInfoWrapper: 1507a7c565a9SYang Zhong# 15082fecccbcSMarkus Armbruster# @data: Sgx EPC state information 15092fecccbcSMarkus Armbruster# 1510a7c565a9SYang Zhong# Since: 6.2 1511a7c565a9SYang Zhong## 1512a7c565a9SYang Zhong{ 'struct': 'SgxEPCDeviceInfoWrapper', 1513a7c565a9SYang Zhong 'data': { 'data': 'SgxEPCDeviceInfo' } } 1514a7c565a9SYang Zhong 1515b495ec6cSPhilippe Mathieu-Daudé## 151616dff2f9SMaciej S. Szmigiero# @HvBalloonDeviceInfoWrapper: 151716dff2f9SMaciej S. Szmigiero# 15182fecccbcSMarkus Armbruster# @data: hv-balloon provided memory state information 15192fecccbcSMarkus Armbruster# 152016dff2f9SMaciej S. Szmigiero# Since: 8.2 152116dff2f9SMaciej S. Szmigiero## 152216dff2f9SMaciej S. Szmigiero{ 'struct': 'HvBalloonDeviceInfoWrapper', 152316dff2f9SMaciej S. Szmigiero 'data': { 'data': 'HvBalloonDeviceInfo' } } 152416dff2f9SMaciej S. Szmigiero 152516dff2f9SMaciej S. Szmigiero## 1526b495ec6cSPhilippe Mathieu-Daudé# @MemoryDeviceInfo: 1527b495ec6cSPhilippe Mathieu-Daudé# 1528b495ec6cSPhilippe Mathieu-Daudé# Union containing information about a memory device 1529b495ec6cSPhilippe Mathieu-Daudé# 153089a2273bSMarkus Armbruster# @type: memory device type 153189a2273bSMarkus Armbruster# 1532b495ec6cSPhilippe Mathieu-Daudé# Since: 2.1 1533b495ec6cSPhilippe Mathieu-Daudé## 1534b495ec6cSPhilippe Mathieu-Daudé{ 'union': 'MemoryDeviceInfo', 1535db6a252bSMarkus Armbruster 'base': { 'type': 'MemoryDeviceInfoKind' }, 1536db6a252bSMarkus Armbruster 'discriminator': 'type', 1537db6a252bSMarkus Armbruster 'data': { 'dimm': 'PCDIMMDeviceInfoWrapper', 1538db6a252bSMarkus Armbruster 'nvdimm': 'PCDIMMDeviceInfoWrapper', 1539db6a252bSMarkus Armbruster 'virtio-pmem': 'VirtioPMEMDeviceInfoWrapper', 1540a7c565a9SYang Zhong 'virtio-mem': 'VirtioMEMDeviceInfoWrapper', 154116dff2f9SMaciej S. Szmigiero 'sgx-epc': 'SgxEPCDeviceInfoWrapper', 154216dff2f9SMaciej S. Szmigiero 'hv-balloon': 'HvBalloonDeviceInfoWrapper' 1543b495ec6cSPhilippe Mathieu-Daudé } 1544b495ec6cSPhilippe Mathieu-Daudé} 1545b495ec6cSPhilippe Mathieu-Daudé 1546b495ec6cSPhilippe Mathieu-Daudé## 1547dfce81f1SSean Christopherson# @SgxEPC: 1548dfce81f1SSean Christopherson# 1549dfce81f1SSean Christopherson# Sgx EPC cmdline information 1550dfce81f1SSean Christopherson# 1551dfce81f1SSean Christopherson# @memdev: memory backend linked with device 1552dfce81f1SSean Christopherson# 1553a66bd91fSYang Zhong# @node: the numa node (Since: 7.0) 155411058123SYang Zhong# 1555dfce81f1SSean Christopherson# Since: 6.2 1556dfce81f1SSean Christopherson## 1557dfce81f1SSean Christopherson{ 'struct': 'SgxEPC', 155811058123SYang Zhong 'data': { 'memdev': 'str', 155911058123SYang Zhong 'node': 'int' 156011058123SYang Zhong } 156111058123SYang Zhong} 1562dfce81f1SSean Christopherson 1563dfce81f1SSean Christopherson## 1564dfce81f1SSean Christopherson# @SgxEPCProperties: 1565dfce81f1SSean Christopherson# 1566dfce81f1SSean Christopherson# SGX properties of machine types. 1567dfce81f1SSean Christopherson# 1568dfce81f1SSean Christopherson# @sgx-epc: list of ids of memory-backend-epc objects. 1569dfce81f1SSean Christopherson# 1570dfce81f1SSean Christopherson# Since: 6.2 1571dfce81f1SSean Christopherson## 1572dfce81f1SSean Christopherson{ 'struct': 'SgxEPCProperties', 1573dfce81f1SSean Christopherson 'data': { 'sgx-epc': ['SgxEPC'] } 1574dfce81f1SSean Christopherson} 1575dfce81f1SSean Christopherson 1576dfce81f1SSean Christopherson## 1577b495ec6cSPhilippe Mathieu-Daudé# @query-memory-devices: 1578b495ec6cSPhilippe Mathieu-Daudé# 1579b495ec6cSPhilippe Mathieu-Daudé# Lists available memory devices and their state 1580b495ec6cSPhilippe Mathieu-Daudé# 1581b495ec6cSPhilippe Mathieu-Daudé# Since: 2.1 1582b495ec6cSPhilippe Mathieu-Daudé# 158314b48aaaSJohn Snow# .. qmp-example:: 1584b495ec6cSPhilippe Mathieu-Daudé# 1585b495ec6cSPhilippe Mathieu-Daudé# -> { "execute": "query-memory-devices" } 1586b495ec6cSPhilippe Mathieu-Daudé# <- { "return": [ { "data": 1587b495ec6cSPhilippe Mathieu-Daudé# { "addr": 5368709120, 1588b495ec6cSPhilippe Mathieu-Daudé# "hotpluggable": true, 1589b495ec6cSPhilippe Mathieu-Daudé# "hotplugged": true, 1590b495ec6cSPhilippe Mathieu-Daudé# "id": "d1", 1591b495ec6cSPhilippe Mathieu-Daudé# "memdev": "/objects/memX", 1592b495ec6cSPhilippe Mathieu-Daudé# "node": 0, 1593b495ec6cSPhilippe Mathieu-Daudé# "size": 1073741824, 1594b495ec6cSPhilippe Mathieu-Daudé# "slot": 0}, 1595b495ec6cSPhilippe Mathieu-Daudé# "type": "dimm" 1596b495ec6cSPhilippe Mathieu-Daudé# } ] } 1597b495ec6cSPhilippe Mathieu-Daudé## 1598b495ec6cSPhilippe Mathieu-Daudé{ 'command': 'query-memory-devices', 'returns': ['MemoryDeviceInfo'] } 1599b495ec6cSPhilippe Mathieu-Daudé 1600b495ec6cSPhilippe Mathieu-Daudé## 1601b495ec6cSPhilippe Mathieu-Daudé# @MEMORY_DEVICE_SIZE_CHANGE: 1602b495ec6cSPhilippe Mathieu-Daudé# 1603a937b6aaSMarkus Armbruster# Emitted when the size of a memory device changes. Only emitted for 1604a937b6aaSMarkus Armbruster# memory devices that can actually change the size (e.g., virtio-mem 1605a937b6aaSMarkus Armbruster# due to guest action). 1606b495ec6cSPhilippe Mathieu-Daudé# 1607b495ec6cSPhilippe Mathieu-Daudé# @id: device's ID 1608d89dd28fSDavid Hildenbrand# 1609b495ec6cSPhilippe Mathieu-Daudé# @size: the new size of memory that the device provides 1610b495ec6cSPhilippe Mathieu-Daudé# 1611d89dd28fSDavid Hildenbrand# @qom-path: path to the device object in the QOM tree (since 6.2) 1612d89dd28fSDavid Hildenbrand# 1613d461c279SJohn Snow# .. note:: This event is rate-limited. 1614b495ec6cSPhilippe Mathieu-Daudé# 1615b495ec6cSPhilippe Mathieu-Daudé# Since: 5.1 1616b495ec6cSPhilippe Mathieu-Daudé# 161714b48aaaSJohn Snow# .. qmp-example:: 1618b495ec6cSPhilippe Mathieu-Daudé# 1619b495ec6cSPhilippe Mathieu-Daudé# <- { "event": "MEMORY_DEVICE_SIZE_CHANGE", 1620dba673b9SVictor Toso# "data": { "id": "vm0", "size": 1073741824, 1621dba673b9SVictor Toso# "qom-path": "/machine/unattached/device[2]" }, 1622b495ec6cSPhilippe Mathieu-Daudé# "timestamp": { "seconds": 1588168529, "microseconds": 201316 } } 1623b495ec6cSPhilippe Mathieu-Daudé## 1624b495ec6cSPhilippe Mathieu-Daudé{ 'event': 'MEMORY_DEVICE_SIZE_CHANGE', 1625d89dd28fSDavid Hildenbrand 'data': { '*id': 'str', 'size': 'size', 'qom-path' : 'str'} } 1626b495ec6cSPhilippe Mathieu-Daudé 1627b495ec6cSPhilippe Mathieu-Daudé## 162897ec4d21SPaolo Bonzini# @BootConfiguration: 162997ec4d21SPaolo Bonzini# 163097ec4d21SPaolo Bonzini# Schema for virtual machine boot configuration. 163197ec4d21SPaolo Bonzini# 163297ec4d21SPaolo Bonzini# @order: Boot order (a=floppy, c=hard disk, d=CD-ROM, n=network) 163397ec4d21SPaolo Bonzini# 163497ec4d21SPaolo Bonzini# @once: Boot order to apply on first boot 163597ec4d21SPaolo Bonzini# 163697ec4d21SPaolo Bonzini# @menu: Whether to show a boot menu 163797ec4d21SPaolo Bonzini# 1638a937b6aaSMarkus Armbruster# @splash: The name of the file to be passed to the firmware as logo 1639a937b6aaSMarkus Armbruster# picture, if @menu is true. 164097ec4d21SPaolo Bonzini# 164197ec4d21SPaolo Bonzini# @splash-time: How long to show the logo picture, in milliseconds 164297ec4d21SPaolo Bonzini# 164397ec4d21SPaolo Bonzini# @reboot-timeout: Timeout before guest reboots after boot fails 164497ec4d21SPaolo Bonzini# 1645a937b6aaSMarkus Armbruster# @strict: Whether to attempt booting from devices not included in the 1646a937b6aaSMarkus Armbruster# boot order 164797ec4d21SPaolo Bonzini# 164897ec4d21SPaolo Bonzini# Since: 7.1 164997ec4d21SPaolo Bonzini## 165097ec4d21SPaolo Bonzini{ 'struct': 'BootConfiguration', 'data': { 165197ec4d21SPaolo Bonzini '*order': 'str', 165297ec4d21SPaolo Bonzini '*once': 'str', 165397ec4d21SPaolo Bonzini '*menu': 'bool', 165497ec4d21SPaolo Bonzini '*splash': 'str', 165597ec4d21SPaolo Bonzini '*splash-time': 'int', 165697ec4d21SPaolo Bonzini '*reboot-timeout': 'int', 165797ec4d21SPaolo Bonzini '*strict': 'bool' } } 165897ec4d21SPaolo Bonzini 165997ec4d21SPaolo Bonzini## 16601e63fe68SPaolo Bonzini# @SMPConfiguration: 16611e63fe68SPaolo Bonzini# 1662a937b6aaSMarkus Armbruster# Schema for CPU topology configuration. A missing value lets QEMU 1663a937b6aaSMarkus Armbruster# figure out a suitable value based on the ones that are provided. 16641e63fe68SPaolo Bonzini# 16653da4aef8SNina Schoetterl-Glausch# The members other than @cpus and @maxcpus define a topology of 16663da4aef8SNina Schoetterl-Glausch# containers. 16673da4aef8SNina Schoetterl-Glausch# 166801bed0ffSMarkus Armbruster# The ordering from highest/coarsest to lowest/finest is: @drawers, 166901bed0ffSMarkus Armbruster# @books, @sockets, @dies, @clusters, @cores, @threads. 16703da4aef8SNina Schoetterl-Glausch# 16713da4aef8SNina Schoetterl-Glausch# Different architectures support different subsets of topology 16723da4aef8SNina Schoetterl-Glausch# containers. 16733da4aef8SNina Schoetterl-Glausch# 16743da4aef8SNina Schoetterl-Glausch# For example, s390x does not have clusters and dies, and the socket 16753da4aef8SNina Schoetterl-Glausch# is the parent container of cores. 16763da4aef8SNina Schoetterl-Glausch# 16771e63fe68SPaolo Bonzini# @cpus: number of virtual CPUs in the virtual machine 16781e63fe68SPaolo Bonzini# 1679a937b6aaSMarkus Armbruster# @maxcpus: maximum number of hotpluggable virtual CPUs in the virtual 1680a937b6aaSMarkus Armbruster# machine 16811e63fe68SPaolo Bonzini# 16825de1aff2SPierre Morel# @drawers: number of drawers in the CPU topology (since 8.2) 16835de1aff2SPierre Morel# 16845de1aff2SPierre Morel# @books: number of books in the CPU topology (since 8.2) 16855de1aff2SPierre Morel# 16865de1aff2SPierre Morel# @sockets: number of sockets per parent container 16873da4aef8SNina Schoetterl-Glausch# 16883da4aef8SNina Schoetterl-Glausch# @dies: number of dies per parent container 16893da4aef8SNina Schoetterl-Glausch# 16903da4aef8SNina Schoetterl-Glausch# @clusters: number of clusters per parent container (since 7.0) 16913da4aef8SNina Schoetterl-Glausch# 16928ec0a463SZhao Liu# @modules: number of modules per parent container (since 9.1) 16938ec0a463SZhao Liu# 16943da4aef8SNina Schoetterl-Glausch# @cores: number of cores per parent container 16953da4aef8SNina Schoetterl-Glausch# 16963da4aef8SNina Schoetterl-Glausch# @threads: number of threads per core 16973da4aef8SNina Schoetterl-Glausch# 16981e63fe68SPaolo Bonzini# Since: 6.1 16991e63fe68SPaolo Bonzini## 17001e63fe68SPaolo Bonzini{ 'struct': 'SMPConfiguration', 'data': { 17011e63fe68SPaolo Bonzini '*cpus': 'int', 17025de1aff2SPierre Morel '*drawers': 'int', 17035de1aff2SPierre Morel '*books': 'int', 17041e63fe68SPaolo Bonzini '*sockets': 'int', 17051e63fe68SPaolo Bonzini '*dies': 'int', 1706864c3b5cSYanan Wang '*clusters': 'int', 17078ec0a463SZhao Liu '*modules': 'int', 17081e63fe68SPaolo Bonzini '*cores': 'int', 17091e63fe68SPaolo Bonzini '*threads': 'int', 17101e63fe68SPaolo Bonzini '*maxcpus': 'int' } } 1711dd98234cSDaniel P. Berrangé 1712dd98234cSDaniel P. Berrangé## 171391f2fa70SDaniel P. Berrangé# @x-query-irq: 171491f2fa70SDaniel P. Berrangé# 171591f2fa70SDaniel P. Berrangé# Query interrupt statistics 171691f2fa70SDaniel P. Berrangé# 17178c0bae5aSMarkus Armbruster# Features: 1718a937b6aaSMarkus Armbruster# 17198c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 17208c0bae5aSMarkus Armbruster# 172191f2fa70SDaniel P. Berrangé# Returns: interrupt statistics 172291f2fa70SDaniel P. Berrangé# 172391f2fa70SDaniel P. Berrangé# Since: 6.2 172491f2fa70SDaniel P. Berrangé## 172591f2fa70SDaniel P. Berrangé{ 'command': 'x-query-irq', 17268c0bae5aSMarkus Armbruster 'returns': 'HumanReadableText', 17278c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 172891f2fa70SDaniel P. Berrangé 172991f2fa70SDaniel P. Berrangé## 17303a841ab5SDaniel P. Berrangé# @x-query-jit: 17313a841ab5SDaniel P. Berrangé# 17323a841ab5SDaniel P. Berrangé# Query TCG compiler statistics 17333a841ab5SDaniel P. Berrangé# 17348c0bae5aSMarkus Armbruster# Features: 1735a937b6aaSMarkus Armbruster# 17368c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 17378c0bae5aSMarkus Armbruster# 17383a841ab5SDaniel P. Berrangé# Returns: TCG compiler statistics 17393a841ab5SDaniel P. Berrangé# 17403a841ab5SDaniel P. Berrangé# Since: 6.2 17413a841ab5SDaniel P. Berrangé## 17423a841ab5SDaniel P. Berrangé{ 'command': 'x-query-jit', 17433a841ab5SDaniel P. Berrangé 'returns': 'HumanReadableText', 17448c0bae5aSMarkus Armbruster 'if': 'CONFIG_TCG', 17458c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 17463a841ab5SDaniel P. Berrangé 17473a841ab5SDaniel P. Berrangé## 17481b8ae799SDaniel P. Berrangé# @x-query-numa: 17491b8ae799SDaniel P. Berrangé# 17501b8ae799SDaniel P. Berrangé# Query NUMA topology information 17511b8ae799SDaniel P. Berrangé# 17528c0bae5aSMarkus Armbruster# Features: 1753a937b6aaSMarkus Armbruster# 17548c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 17558c0bae5aSMarkus Armbruster# 17561b8ae799SDaniel P. Berrangé# Returns: topology information 17571b8ae799SDaniel P. Berrangé# 17581b8ae799SDaniel P. Berrangé# Since: 6.2 17591b8ae799SDaniel P. Berrangé## 17601b8ae799SDaniel P. Berrangé{ 'command': 'x-query-numa', 17618c0bae5aSMarkus Armbruster 'returns': 'HumanReadableText', 17628c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 17631b8ae799SDaniel P. Berrangé 17641b8ae799SDaniel P. Berrangé## 1765b6a7f3e0SDaniel P. Berrangé# @x-query-opcount: 1766b6a7f3e0SDaniel P. Berrangé# 1767b6a7f3e0SDaniel P. Berrangé# Query TCG opcode counters 1768b6a7f3e0SDaniel P. Berrangé# 17698c0bae5aSMarkus Armbruster# Features: 1770a937b6aaSMarkus Armbruster# 17718c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 17728c0bae5aSMarkus Armbruster# 1773b6a7f3e0SDaniel P. Berrangé# Returns: TCG opcode counters 1774b6a7f3e0SDaniel P. Berrangé# 1775b6a7f3e0SDaniel P. Berrangé# Since: 6.2 1776b6a7f3e0SDaniel P. Berrangé## 1777b6a7f3e0SDaniel P. Berrangé{ 'command': 'x-query-opcount', 1778b6a7f3e0SDaniel P. Berrangé 'returns': 'HumanReadableText', 17798c0bae5aSMarkus Armbruster 'if': 'CONFIG_TCG', 17808c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 1781b6a7f3e0SDaniel P. Berrangé 1782b6a7f3e0SDaniel P. Berrangé## 1783ca411b7cSDaniel P. Berrangé# @x-query-ramblock: 1784ca411b7cSDaniel P. Berrangé# 1785ca411b7cSDaniel P. Berrangé# Query system ramblock information 1786ca411b7cSDaniel P. Berrangé# 17878c0bae5aSMarkus Armbruster# Features: 1788a937b6aaSMarkus Armbruster# 17898c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 17908c0bae5aSMarkus Armbruster# 1791ca411b7cSDaniel P. Berrangé# Returns: system ramblock information 1792ca411b7cSDaniel P. Berrangé# 1793ca411b7cSDaniel P. Berrangé# Since: 6.2 1794ca411b7cSDaniel P. Berrangé## 1795ca411b7cSDaniel P. Berrangé{ 'command': 'x-query-ramblock', 17968c0bae5aSMarkus Armbruster 'returns': 'HumanReadableText', 17978c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 1798ca411b7cSDaniel P. Berrangé 1799ca411b7cSDaniel P. Berrangé## 1800dd98234cSDaniel P. Berrangé# @x-query-roms: 1801dd98234cSDaniel P. Berrangé# 1802dd98234cSDaniel P. Berrangé# Query information on the registered ROMS 1803dd98234cSDaniel P. Berrangé# 18048c0bae5aSMarkus Armbruster# Features: 1805a937b6aaSMarkus Armbruster# 18068c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 18078c0bae5aSMarkus Armbruster# 1808dd98234cSDaniel P. Berrangé# Returns: registered ROMs 1809dd98234cSDaniel P. Berrangé# 1810dd98234cSDaniel P. Berrangé# Since: 6.2 1811dd98234cSDaniel P. Berrangé## 1812dd98234cSDaniel P. Berrangé{ 'command': 'x-query-roms', 18138c0bae5aSMarkus Armbruster 'returns': 'HumanReadableText', 18148c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 1815fc309207SDaniel P. Berrangé 1816fc309207SDaniel P. Berrangé## 1817fc309207SDaniel P. Berrangé# @x-query-usb: 1818fc309207SDaniel P. Berrangé# 1819fc309207SDaniel P. Berrangé# Query information on the USB devices 1820fc309207SDaniel P. Berrangé# 18218c0bae5aSMarkus Armbruster# Features: 1822a937b6aaSMarkus Armbruster# 18238c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 18248c0bae5aSMarkus Armbruster# 1825fc309207SDaniel P. Berrangé# Returns: USB device information 1826fc309207SDaniel P. Berrangé# 1827fc309207SDaniel P. Berrangé# Since: 6.2 1828fc309207SDaniel P. Berrangé## 1829fc309207SDaniel P. Berrangé{ 'command': 'x-query-usb', 18308c0bae5aSMarkus Armbruster 'returns': 'HumanReadableText', 18318c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 1832bdf54a9aSEduardo Habkost 1833bdf54a9aSEduardo Habkost## 1834bdf54a9aSEduardo Habkost# @SmbiosEntryPointType: 1835bdf54a9aSEduardo Habkost# 1836bdf54a9aSEduardo Habkost# @32: SMBIOS version 2.1 (32-bit) Entry Point 1837bdf54a9aSEduardo Habkost# 1838bdf54a9aSEduardo Habkost# @64: SMBIOS version 3.0 (64-bit) Entry Point 1839bdf54a9aSEduardo Habkost# 18404901b80eSIgor Mammedov# @auto: Either 2.x or 3.x SMBIOS version, 2.x if configuration can be 18414901b80eSIgor Mammedov# described by it and 3.x otherwise (since: 9.0) 18424901b80eSIgor Mammedov# 1843bdf54a9aSEduardo Habkost# Since: 7.0 1844bdf54a9aSEduardo Habkost## 1845bdf54a9aSEduardo Habkost{ 'enum': 'SmbiosEntryPointType', 18464901b80eSIgor Mammedov 'data': [ '32', '64', 'auto' ] } 1847ce9d03fbSPaolo Bonzini 1848ce9d03fbSPaolo Bonzini## 1849ce9d03fbSPaolo Bonzini# @MemorySizeConfiguration: 1850ce9d03fbSPaolo Bonzini# 1851ce9d03fbSPaolo Bonzini# Schema for memory size configuration. 1852ce9d03fbSPaolo Bonzini# 1853ce9d03fbSPaolo Bonzini# @size: memory size in bytes 1854ce9d03fbSPaolo Bonzini# 1855ce9d03fbSPaolo Bonzini# @max-size: maximum hotpluggable memory size in bytes 1856ce9d03fbSPaolo Bonzini# 1857ce9d03fbSPaolo Bonzini# @slots: number of available memory slots for hotplug 1858ce9d03fbSPaolo Bonzini# 1859ce9d03fbSPaolo Bonzini# Since: 7.1 1860ce9d03fbSPaolo Bonzini## 1861ce9d03fbSPaolo Bonzini{ 'struct': 'MemorySizeConfiguration', 'data': { 1862ce9d03fbSPaolo Bonzini '*size': 'size', 1863ce9d03fbSPaolo Bonzini '*max-size': 'size', 1864ce9d03fbSPaolo Bonzini '*slots': 'uint64' } } 1865bf353ad5SDaniel Henrique Barboza 1866bf353ad5SDaniel Henrique Barboza## 1867bf353ad5SDaniel Henrique Barboza# @dumpdtb: 1868bf353ad5SDaniel Henrique Barboza# 1869bf353ad5SDaniel Henrique Barboza# Save the FDT in dtb format. 1870bf353ad5SDaniel Henrique Barboza# 1871bf353ad5SDaniel Henrique Barboza# @filename: name of the dtb file to be created 1872bf353ad5SDaniel Henrique Barboza# 1873bf353ad5SDaniel Henrique Barboza# Since: 7.2 1874bf353ad5SDaniel Henrique Barboza# 187514b48aaaSJohn Snow# .. qmp-example:: 1876a937b6aaSMarkus Armbruster# 187737fa48a4SMarkus Armbruster# -> { "execute": "dumpdtb" } 1878bf353ad5SDaniel Henrique Barboza# "arguments": { "filename": "fdt.dtb" } } 187937fa48a4SMarkus Armbruster# <- { "return": {} } 1880bf353ad5SDaniel Henrique Barboza## 1881bf353ad5SDaniel Henrique Barboza{ 'command': 'dumpdtb', 1882bf353ad5SDaniel Henrique Barboza 'data': { 'filename': 'str' }, 1883bf353ad5SDaniel Henrique Barboza 'if': 'CONFIG_FDT' } 1884795eaa62SPhilippe Mathieu-Daudé 1885795eaa62SPhilippe Mathieu-Daudé## 1886795eaa62SPhilippe Mathieu-Daudé# @x-query-interrupt-controllers: 1887795eaa62SPhilippe Mathieu-Daudé# 1888795eaa62SPhilippe Mathieu-Daudé# Query information on interrupt controller devices 1889795eaa62SPhilippe Mathieu-Daudé# 1890795eaa62SPhilippe Mathieu-Daudé# Features: 1891795eaa62SPhilippe Mathieu-Daudé# 1892795eaa62SPhilippe Mathieu-Daudé# @unstable: This command is meant for debugging. 1893795eaa62SPhilippe Mathieu-Daudé# 1894795eaa62SPhilippe Mathieu-Daudé# Returns: Interrupt controller devices information 1895795eaa62SPhilippe Mathieu-Daudé# 1896795eaa62SPhilippe Mathieu-Daudé# Since: 9.1 1897795eaa62SPhilippe Mathieu-Daudé## 1898795eaa62SPhilippe Mathieu-Daudé{ 'command': 'x-query-interrupt-controllers', 1899795eaa62SPhilippe Mathieu-Daudé 'returns': 'HumanReadableText', 1900795eaa62SPhilippe Mathieu-Daudé 'features': [ 'unstable' ]} 1901