18ac25c84SMarkus Armbruster# -*- Mode: Python -*- 2f7160f32SAndrea Bolognani# vim: filetype=python 38ac25c84SMarkus Armbruster# 48ac25c84SMarkus Armbruster# This work is licensed under the terms of the GNU GPL, version 2 or later. 58ac25c84SMarkus Armbruster# See the COPYING file in the top-level directory. 68ac25c84SMarkus Armbruster 78ac25c84SMarkus Armbruster## 88ac25c84SMarkus Armbruster# = Machines 98ac25c84SMarkus Armbruster## 108ac25c84SMarkus Armbruster 11913d9063SKevin Wolf{ 'include': 'common.json' } 125de1aff2SPierre Morel{ 'include': 'machine-common.json' } 13913d9063SKevin Wolf 14ffaee83bSMarkus Armbruster## 15ffaee83bSMarkus Armbruster# @SysEmuTarget: 16ffaee83bSMarkus Armbruster# 17ffaee83bSMarkus Armbruster# The comprehensive enumeration of QEMU system emulation ("softmmu") 18a937b6aaSMarkus Armbruster# targets. Run "./configure --help" in the project root directory, 19a937b6aaSMarkus Armbruster# and look for the \*-softmmu targets near the "--target-list" option. 20a937b6aaSMarkus Armbruster# The individual target constants are not documented here, for the 21a937b6aaSMarkus Armbruster# time being. 22ffaee83bSMarkus Armbruster# 23c8c35e5fSYoshinori Sato# @rx: since 5.0 24a937b6aaSMarkus Armbruster# 2542f3ff00SMichael Rolnik# @avr: since 5.1 26c8c35e5fSYoshinori Sato# 27a937b6aaSMarkus Armbruster# Notes: The resulting QMP strings can be appended to the 28a937b6aaSMarkus Armbruster# "qemu-system-" prefix to produce the corresponding QEMU 29a937b6aaSMarkus Armbruster# executable name. This is true even for "qemu-system-x86_64". 30ffaee83bSMarkus Armbruster# 31ffaee83bSMarkus Armbruster# Since: 3.0 32ffaee83bSMarkus Armbruster## 33ffaee83bSMarkus Armbruster{ 'enum' : 'SysEmuTarget', 349d49bcf6SMarkus Armbruster 'data' : [ 'aarch64', 'alpha', 'arm', 'avr', 'cris', 'hppa', 'i386', 35a8a506c3SXiaojuan Yang 'loongarch64', 'm68k', 'microblaze', 'microblazeel', 'mips', 'mips64', 36875bb7e3SThomas Huth 'mips64el', 'mipsel', 'nios2', 'or1k', 'ppc', 37c8c35e5fSYoshinori Sato 'ppc64', 'riscv32', 'riscv64', 'rx', 's390x', 'sh4', 3843692239SMarkus Armbruster 'sh4eb', 'sparc', 'sparc64', 'tricore', 39ffaee83bSMarkus Armbruster 'x86_64', 'xtensa', 'xtensaeb' ] } 408ac25c84SMarkus Armbruster 418ac25c84SMarkus Armbruster## 428ac25c84SMarkus Armbruster# @CpuS390State: 438ac25c84SMarkus Armbruster# 44a937b6aaSMarkus Armbruster# An enumeration of cpu states that can be assumed by a virtual S390 45a937b6aaSMarkus Armbruster# CPU 468ac25c84SMarkus Armbruster# 478ac25c84SMarkus Armbruster# Since: 2.12 488ac25c84SMarkus Armbruster## 498ac25c84SMarkus Armbruster{ 'enum': 'CpuS390State', 508ac25c84SMarkus Armbruster 'prefix': 'S390_CPU_STATE', 518ac25c84SMarkus Armbruster 'data': [ 'uninitialized', 'stopped', 'check-stop', 'operating', 'load' ] } 528ac25c84SMarkus Armbruster 538ac25c84SMarkus Armbruster## 548ac25c84SMarkus Armbruster# @CpuInfoS390: 558ac25c84SMarkus Armbruster# 568ac25c84SMarkus Armbruster# Additional information about a virtual S390 CPU 578ac25c84SMarkus Armbruster# 588ac25c84SMarkus Armbruster# @cpu-state: the virtual CPU's state 598ac25c84SMarkus Armbruster# 60ad2d1afcSPierre Morel# @dedicated: the virtual CPU's dedication (since 8.2) 61ad2d1afcSPierre Morel# 62ad2d1afcSPierre Morel# @entitlement: the virtual CPU's entitlement (since 8.2) 63ad2d1afcSPierre Morel# 648ac25c84SMarkus Armbruster# Since: 2.12 658ac25c84SMarkus Armbruster## 66ad2d1afcSPierre Morel{ 'struct': 'CpuInfoS390', 67ad2d1afcSPierre Morel 'data': { 'cpu-state': 'CpuS390State', 68ad2d1afcSPierre Morel '*dedicated': 'bool', 69ad2d1afcSPierre Morel '*entitlement': 'CpuS390Entitlement' } } 708ac25c84SMarkus Armbruster 718ac25c84SMarkus Armbruster## 728ac25c84SMarkus Armbruster# @CpuInfoFast: 738ac25c84SMarkus Armbruster# 748ac25c84SMarkus Armbruster# Information about a virtual CPU 758ac25c84SMarkus Armbruster# 768ac25c84SMarkus Armbruster# @cpu-index: index of the virtual CPU 778ac25c84SMarkus Armbruster# 788ac25c84SMarkus Armbruster# @qom-path: path to the CPU object in the QOM tree 798ac25c84SMarkus Armbruster# 808ac25c84SMarkus Armbruster# @thread-id: ID of the underlying host thread 818ac25c84SMarkus Armbruster# 823da4aef8SNina Schoetterl-Glausch# @props: properties associated with a virtual CPU, e.g. the socket id 838ac25c84SMarkus Armbruster# 848ac25c84SMarkus Armbruster# @target: the QEMU system emulation target, which determines which 858ac25c84SMarkus Armbruster# additional fields will be listed (since 3.0) 868ac25c84SMarkus Armbruster# 878ac25c84SMarkus Armbruster# Since: 2.12 888ac25c84SMarkus Armbruster## 898ac25c84SMarkus Armbruster{ 'union' : 'CpuInfoFast', 908ac25c84SMarkus Armbruster 'base' : { 'cpu-index' : 'int', 918ac25c84SMarkus Armbruster 'qom-path' : 'str', 928ac25c84SMarkus Armbruster 'thread-id' : 'int', 938ac25c84SMarkus Armbruster '*props' : 'CpuInstanceProperties', 948ac25c84SMarkus Armbruster 'target' : 'SysEmuTarget' }, 958ac25c84SMarkus Armbruster 'discriminator' : 'target', 968ac25c84SMarkus Armbruster 'data' : { 's390x' : 'CpuInfoS390' } } 978ac25c84SMarkus Armbruster 988ac25c84SMarkus Armbruster## 998ac25c84SMarkus Armbruster# @query-cpus-fast: 1008ac25c84SMarkus Armbruster# 1018af54b91SDaniel P. Berrangé# Returns information about all virtual CPUs. 1028ac25c84SMarkus Armbruster# 1038ac25c84SMarkus Armbruster# Returns: list of @CpuInfoFast 1048ac25c84SMarkus Armbruster# 1058ac25c84SMarkus Armbruster# Since: 2.12 1068ac25c84SMarkus Armbruster# 1078ac25c84SMarkus Armbruster# Example: 1088ac25c84SMarkus Armbruster# 1098ac25c84SMarkus Armbruster# -> { "execute": "query-cpus-fast" } 1108ac25c84SMarkus Armbruster# <- { "return": [ 1118ac25c84SMarkus Armbruster# { 1128ac25c84SMarkus Armbruster# "thread-id": 25627, 1138ac25c84SMarkus Armbruster# "props": { 1148ac25c84SMarkus Armbruster# "core-id": 0, 1158ac25c84SMarkus Armbruster# "thread-id": 0, 1168ac25c84SMarkus Armbruster# "socket-id": 0 1178ac25c84SMarkus Armbruster# }, 1188ac25c84SMarkus Armbruster# "qom-path": "/machine/unattached/device[0]", 1198ac25c84SMarkus Armbruster# "target":"x86_64", 1208ac25c84SMarkus Armbruster# "cpu-index": 0 1218ac25c84SMarkus Armbruster# }, 1228ac25c84SMarkus Armbruster# { 1238ac25c84SMarkus Armbruster# "thread-id": 25628, 1248ac25c84SMarkus Armbruster# "props": { 1258ac25c84SMarkus Armbruster# "core-id": 0, 1268ac25c84SMarkus Armbruster# "thread-id": 0, 1278ac25c84SMarkus Armbruster# "socket-id": 1 1288ac25c84SMarkus Armbruster# }, 1298ac25c84SMarkus Armbruster# "qom-path": "/machine/unattached/device[2]", 1308ac25c84SMarkus Armbruster# "target":"x86_64", 1318ac25c84SMarkus Armbruster# "cpu-index": 1 1328ac25c84SMarkus Armbruster# } 1338ac25c84SMarkus Armbruster# ] 1348ac25c84SMarkus Armbruster# } 1358ac25c84SMarkus Armbruster## 1368ac25c84SMarkus Armbruster{ 'command': 'query-cpus-fast', 'returns': [ 'CpuInfoFast' ] } 1378ac25c84SMarkus Armbruster 1388ac25c84SMarkus Armbruster## 1398ac25c84SMarkus Armbruster# @MachineInfo: 1408ac25c84SMarkus Armbruster# 1418ac25c84SMarkus Armbruster# Information describing a machine. 1428ac25c84SMarkus Armbruster# 1438ac25c84SMarkus Armbruster# @name: the name of the machine 1448ac25c84SMarkus Armbruster# 1458ac25c84SMarkus Armbruster# @alias: an alias for the machine name 1468ac25c84SMarkus Armbruster# 1478ac25c84SMarkus Armbruster# @is-default: whether the machine is default 1488ac25c84SMarkus Armbruster# 1498ac25c84SMarkus Armbruster# @cpu-max: maximum number of CPUs supported by the machine type 1509bc6e893SMarkus Armbruster# (since 1.5) 1518ac25c84SMarkus Armbruster# 1529bc6e893SMarkus Armbruster# @hotpluggable-cpus: cpu hotplug via -device is supported (since 2.7) 1538ac25c84SMarkus Armbruster# 154cd5ff833SIgor Mammedov# @numa-mem-supported: true if '-numa node,mem' option is supported by 155cd5ff833SIgor Mammedov# the machine type and false otherwise (since 4.1) 156cd5ff833SIgor Mammedov# 157a937b6aaSMarkus Armbruster# @deprecated: if true, the machine type is deprecated and may be 158a937b6aaSMarkus Armbruster# removed in future versions of QEMU according to the QEMU 159a937b6aaSMarkus Armbruster# deprecation policy (since 4.1) 16079974027SEduardo Habkost# 161a937b6aaSMarkus Armbruster# @default-cpu-type: default CPU model typename if none is requested 162a937b6aaSMarkus Armbruster# via the -cpu argument. (since 4.2) 16304109957SDaniel P. Berrangé# 164a937b6aaSMarkus Armbruster# @default-ram-id: the default ID of initial RAM memory backend (since 165a937b6aaSMarkus Armbruster# 5.2) 166c5566005SMichal Privoznik# 167b97f3147SPeter Krempa# @acpi: machine type supports ACPI (since 8.0) 168b97f3147SPeter Krempa# 1699bc6e893SMarkus Armbruster# Since: 1.2 1708ac25c84SMarkus Armbruster## 1718ac25c84SMarkus Armbruster{ 'struct': 'MachineInfo', 1728ac25c84SMarkus Armbruster 'data': { 'name': 'str', '*alias': 'str', 1738ac25c84SMarkus Armbruster '*is-default': 'bool', 'cpu-max': 'int', 17479974027SEduardo Habkost 'hotpluggable-cpus': 'bool', 'numa-mem-supported': 'bool', 175c5566005SMichal Privoznik 'deprecated': 'bool', '*default-cpu-type': 'str', 176b97f3147SPeter Krempa '*default-ram-id': 'str', 'acpi': 'bool' } } 1778ac25c84SMarkus Armbruster 1788ac25c84SMarkus Armbruster## 1798ac25c84SMarkus Armbruster# @query-machines: 1808ac25c84SMarkus Armbruster# 1818ac25c84SMarkus Armbruster# Return a list of supported machines 1828ac25c84SMarkus Armbruster# 1838ac25c84SMarkus Armbruster# Returns: a list of MachineInfo 1848ac25c84SMarkus Armbruster# 1859bc6e893SMarkus Armbruster# Since: 1.2 1868ac25c84SMarkus Armbruster## 1878ac25c84SMarkus Armbruster{ 'command': 'query-machines', 'returns': ['MachineInfo'] } 1888ac25c84SMarkus Armbruster 1898ac25c84SMarkus Armbruster## 1908ac25c84SMarkus Armbruster# @CurrentMachineParams: 1918ac25c84SMarkus Armbruster# 1928ac25c84SMarkus Armbruster# Information describing the running machine parameters. 1938ac25c84SMarkus Armbruster# 1948ac25c84SMarkus Armbruster# @wakeup-suspend-support: true if the machine supports wake up from 1958ac25c84SMarkus Armbruster# suspend 1968ac25c84SMarkus Armbruster# 1978ac25c84SMarkus Armbruster# Since: 4.0 1988ac25c84SMarkus Armbruster## 1998ac25c84SMarkus Armbruster{ 'struct': 'CurrentMachineParams', 2008ac25c84SMarkus Armbruster 'data': { 'wakeup-suspend-support': 'bool'} } 2018ac25c84SMarkus Armbruster 2028ac25c84SMarkus Armbruster## 2038ac25c84SMarkus Armbruster# @query-current-machine: 2048ac25c84SMarkus Armbruster# 2058ac25c84SMarkus Armbruster# Return information on the current virtual machine. 2068ac25c84SMarkus Armbruster# 2078ac25c84SMarkus Armbruster# Returns: CurrentMachineParams 2088ac25c84SMarkus Armbruster# 2098ac25c84SMarkus Armbruster# Since: 4.0 2108ac25c84SMarkus Armbruster## 2118ac25c84SMarkus Armbruster{ 'command': 'query-current-machine', 'returns': 'CurrentMachineParams' } 2128ac25c84SMarkus Armbruster 2138ac25c84SMarkus Armbruster## 214ffaee83bSMarkus Armbruster# @TargetInfo: 215ffaee83bSMarkus Armbruster# 216ffaee83bSMarkus Armbruster# Information describing the QEMU target. 217ffaee83bSMarkus Armbruster# 218ffaee83bSMarkus Armbruster# @arch: the target architecture 219ffaee83bSMarkus Armbruster# 2209bc6e893SMarkus Armbruster# Since: 1.2 221ffaee83bSMarkus Armbruster## 222ffaee83bSMarkus Armbruster{ 'struct': 'TargetInfo', 223ffaee83bSMarkus Armbruster 'data': { 'arch': 'SysEmuTarget' } } 224ffaee83bSMarkus Armbruster 225ffaee83bSMarkus Armbruster## 226ffaee83bSMarkus Armbruster# @query-target: 227ffaee83bSMarkus Armbruster# 228ffaee83bSMarkus Armbruster# Return information about the target for this QEMU 229ffaee83bSMarkus Armbruster# 230ffaee83bSMarkus Armbruster# Returns: TargetInfo 231ffaee83bSMarkus Armbruster# 2329bc6e893SMarkus Armbruster# Since: 1.2 233ffaee83bSMarkus Armbruster## 234ffaee83bSMarkus Armbruster{ 'command': 'query-target', 'returns': 'TargetInfo' } 235ffaee83bSMarkus Armbruster 236ffaee83bSMarkus Armbruster## 237f68c0147SPhilippe Mathieu-Daudé# @UuidInfo: 238f68c0147SPhilippe Mathieu-Daudé# 239f68c0147SPhilippe Mathieu-Daudé# Guest UUID information (Universally Unique Identifier). 240f68c0147SPhilippe Mathieu-Daudé# 241f68c0147SPhilippe Mathieu-Daudé# @UUID: the UUID of the guest 242f68c0147SPhilippe Mathieu-Daudé# 2439bc6e893SMarkus Armbruster# Since: 0.14 244f68c0147SPhilippe Mathieu-Daudé# 245a937b6aaSMarkus Armbruster# Notes: If no UUID was specified for the guest, a null UUID is 246a937b6aaSMarkus Armbruster# returned. 247f68c0147SPhilippe Mathieu-Daudé## 248f68c0147SPhilippe Mathieu-Daudé{ 'struct': 'UuidInfo', 'data': {'UUID': 'str'} } 249f68c0147SPhilippe Mathieu-Daudé 250f68c0147SPhilippe Mathieu-Daudé## 251f68c0147SPhilippe Mathieu-Daudé# @query-uuid: 252f68c0147SPhilippe Mathieu-Daudé# 253f68c0147SPhilippe Mathieu-Daudé# Query the guest UUID information. 254f68c0147SPhilippe Mathieu-Daudé# 255f68c0147SPhilippe Mathieu-Daudé# Returns: The @UuidInfo for the guest 256f68c0147SPhilippe Mathieu-Daudé# 2579bc6e893SMarkus Armbruster# Since: 0.14 258f68c0147SPhilippe Mathieu-Daudé# 259f68c0147SPhilippe Mathieu-Daudé# Example: 260f68c0147SPhilippe Mathieu-Daudé# 261f68c0147SPhilippe Mathieu-Daudé# -> { "execute": "query-uuid" } 262f68c0147SPhilippe Mathieu-Daudé# <- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } } 263f68c0147SPhilippe Mathieu-Daudé## 264f68c0147SPhilippe Mathieu-Daudé{ 'command': 'query-uuid', 'returns': 'UuidInfo', 'allow-preconfig': true } 265f68c0147SPhilippe Mathieu-Daudé 266f68c0147SPhilippe Mathieu-Daudé## 267db0f08dfSPhilippe Mathieu-Daudé# @GuidInfo: 268db0f08dfSPhilippe Mathieu-Daudé# 269db0f08dfSPhilippe Mathieu-Daudé# GUID information. 270db0f08dfSPhilippe Mathieu-Daudé# 271db0f08dfSPhilippe Mathieu-Daudé# @guid: the globally unique identifier 272db0f08dfSPhilippe Mathieu-Daudé# 273db0f08dfSPhilippe Mathieu-Daudé# Since: 2.9 274db0f08dfSPhilippe Mathieu-Daudé## 275db0f08dfSPhilippe Mathieu-Daudé{ 'struct': 'GuidInfo', 'data': {'guid': 'str'} } 276db0f08dfSPhilippe Mathieu-Daudé 277db0f08dfSPhilippe Mathieu-Daudé## 278db0f08dfSPhilippe Mathieu-Daudé# @query-vm-generation-id: 279db0f08dfSPhilippe Mathieu-Daudé# 280db0f08dfSPhilippe Mathieu-Daudé# Show Virtual Machine Generation ID 281db0f08dfSPhilippe Mathieu-Daudé# 282db0f08dfSPhilippe Mathieu-Daudé# Since: 2.9 283db0f08dfSPhilippe Mathieu-Daudé## 284db0f08dfSPhilippe Mathieu-Daudé{ 'command': 'query-vm-generation-id', 'returns': 'GuidInfo' } 285db0f08dfSPhilippe Mathieu-Daudé 286db0f08dfSPhilippe Mathieu-Daudé## 28790f8c0f9SPhilippe Mathieu-Daudé# @system_reset: 28890f8c0f9SPhilippe Mathieu-Daudé# 28990f8c0f9SPhilippe Mathieu-Daudé# Performs a hard reset of a guest. 29090f8c0f9SPhilippe Mathieu-Daudé# 2919bc6e893SMarkus Armbruster# Since: 0.14 29290f8c0f9SPhilippe Mathieu-Daudé# 29390f8c0f9SPhilippe Mathieu-Daudé# Example: 29490f8c0f9SPhilippe Mathieu-Daudé# 29590f8c0f9SPhilippe Mathieu-Daudé# -> { "execute": "system_reset" } 29690f8c0f9SPhilippe Mathieu-Daudé# <- { "return": {} } 29790f8c0f9SPhilippe Mathieu-Daudé## 29890f8c0f9SPhilippe Mathieu-Daudé{ 'command': 'system_reset' } 29990f8c0f9SPhilippe Mathieu-Daudé 30090f8c0f9SPhilippe Mathieu-Daudé## 30190f8c0f9SPhilippe Mathieu-Daudé# @system_powerdown: 30290f8c0f9SPhilippe Mathieu-Daudé# 30390f8c0f9SPhilippe Mathieu-Daudé# Requests that a guest perform a powerdown operation. 30490f8c0f9SPhilippe Mathieu-Daudé# 3059bc6e893SMarkus Armbruster# Since: 0.14 30690f8c0f9SPhilippe Mathieu-Daudé# 30790f8c0f9SPhilippe Mathieu-Daudé# Notes: A guest may or may not respond to this command. This command 308a937b6aaSMarkus Armbruster# returning does not indicate that a guest has accepted the 309a937b6aaSMarkus Armbruster# request or that it has shut down. Many guests will respond to 310a937b6aaSMarkus Armbruster# this command by prompting the user in some way. 3114ae65a52SAndrea Bolognani# 31290f8c0f9SPhilippe Mathieu-Daudé# Example: 31390f8c0f9SPhilippe Mathieu-Daudé# 31490f8c0f9SPhilippe Mathieu-Daudé# -> { "execute": "system_powerdown" } 31590f8c0f9SPhilippe Mathieu-Daudé# <- { "return": {} } 31690f8c0f9SPhilippe Mathieu-Daudé## 31790f8c0f9SPhilippe Mathieu-Daudé{ 'command': 'system_powerdown' } 31890f8c0f9SPhilippe Mathieu-Daudé 31990f8c0f9SPhilippe Mathieu-Daudé## 32090f8c0f9SPhilippe Mathieu-Daudé# @system_wakeup: 32190f8c0f9SPhilippe Mathieu-Daudé# 32290f8c0f9SPhilippe Mathieu-Daudé# Wake up guest from suspend. If the guest has wake-up from suspend 32390f8c0f9SPhilippe Mathieu-Daudé# support enabled (wakeup-suspend-support flag from 32490f8c0f9SPhilippe Mathieu-Daudé# query-current-machine), wake-up guest from suspend if the guest is 32590f8c0f9SPhilippe Mathieu-Daudé# in SUSPENDED state. Return an error otherwise. 32690f8c0f9SPhilippe Mathieu-Daudé# 32790f8c0f9SPhilippe Mathieu-Daudé# Since: 1.1 32890f8c0f9SPhilippe Mathieu-Daudé# 32990f8c0f9SPhilippe Mathieu-Daudé# Note: prior to 4.0, this command does nothing in case the guest 33090f8c0f9SPhilippe Mathieu-Daudé# isn't suspended. 33190f8c0f9SPhilippe Mathieu-Daudé# 33290f8c0f9SPhilippe Mathieu-Daudé# Example: 33390f8c0f9SPhilippe Mathieu-Daudé# 33490f8c0f9SPhilippe Mathieu-Daudé# -> { "execute": "system_wakeup" } 33590f8c0f9SPhilippe Mathieu-Daudé# <- { "return": {} } 33690f8c0f9SPhilippe Mathieu-Daudé## 33790f8c0f9SPhilippe Mathieu-Daudé{ 'command': 'system_wakeup' } 33890f8c0f9SPhilippe Mathieu-Daudé 33990f8c0f9SPhilippe Mathieu-Daudé## 3408dc007d3SPhilippe Mathieu-Daudé# @LostTickPolicy: 3418dc007d3SPhilippe Mathieu-Daudé# 342a937b6aaSMarkus Armbruster# Policy for handling lost ticks in timer devices. Ticks end up 343a937b6aaSMarkus Armbruster# getting lost when, for example, the guest is paused. 3448dc007d3SPhilippe Mathieu-Daudé# 345a937b6aaSMarkus Armbruster# @discard: throw away the missed ticks and continue with future 346a937b6aaSMarkus Armbruster# injection normally. The guest OS will see the timer jump ahead 347a937b6aaSMarkus Armbruster# by a potentially quite significant amount all at once, as if the 3488dc007d3SPhilippe Mathieu-Daudé# intervening chunk of time had simply not existed; needless to 3498dc007d3SPhilippe Mathieu-Daudé# say, such a sudden jump can easily confuse a guest OS which is 3508dc007d3SPhilippe Mathieu-Daudé# not specifically prepared to deal with it. Assuming the guest 3518dc007d3SPhilippe Mathieu-Daudé# OS can deal correctly with the time jump, the time in the guest 3528dc007d3SPhilippe Mathieu-Daudé# and in the host should now match. 3538dc007d3SPhilippe Mathieu-Daudé# 354a937b6aaSMarkus Armbruster# @delay: continue to deliver ticks at the normal rate. The guest OS 355a937b6aaSMarkus Armbruster# will not notice anything is amiss, as from its point of view 356a937b6aaSMarkus Armbruster# time will have continued to flow normally. The time in the 357a937b6aaSMarkus Armbruster# guest should now be behind the time in the host by exactly the 358a937b6aaSMarkus Armbruster# amount of time during which ticks have been missed. 3598dc007d3SPhilippe Mathieu-Daudé# 360a937b6aaSMarkus Armbruster# @slew: deliver ticks at a higher rate to catch up with the missed 361a937b6aaSMarkus Armbruster# ticks. The guest OS will not notice anything is amiss, as from 362a937b6aaSMarkus Armbruster# its point of view time will have continued to flow normally. 363a937b6aaSMarkus Armbruster# Once the timer has managed to catch up with all the missing 364a937b6aaSMarkus Armbruster# ticks, the time in the guest and in the host should match. 3658dc007d3SPhilippe Mathieu-Daudé# 3668dc007d3SPhilippe Mathieu-Daudé# Since: 2.0 3678dc007d3SPhilippe Mathieu-Daudé## 3688dc007d3SPhilippe Mathieu-Daudé{ 'enum': 'LostTickPolicy', 3698dc007d3SPhilippe Mathieu-Daudé 'data': ['discard', 'delay', 'slew' ] } 3708dc007d3SPhilippe Mathieu-Daudé 3718dc007d3SPhilippe Mathieu-Daudé## 372df7a1f48SPhilippe Mathieu-Daudé# @inject-nmi: 373df7a1f48SPhilippe Mathieu-Daudé# 374a937b6aaSMarkus Armbruster# Injects a Non-Maskable Interrupt into the default CPU (x86/s390) or 375a937b6aaSMarkus Armbruster# all CPUs (ppc64). The command fails when the guest doesn't support 376a937b6aaSMarkus Armbruster# injecting. 377df7a1f48SPhilippe Mathieu-Daudé# 3789bc6e893SMarkus Armbruster# Since: 0.14 379df7a1f48SPhilippe Mathieu-Daudé# 380a937b6aaSMarkus Armbruster# Note: prior to 2.1, this command was only supported for x86 and s390 381a937b6aaSMarkus Armbruster# VMs 382df7a1f48SPhilippe Mathieu-Daudé# 383df7a1f48SPhilippe Mathieu-Daudé# Example: 384df7a1f48SPhilippe Mathieu-Daudé# 385df7a1f48SPhilippe Mathieu-Daudé# -> { "execute": "inject-nmi" } 386df7a1f48SPhilippe Mathieu-Daudé# <- { "return": {} } 387df7a1f48SPhilippe Mathieu-Daudé## 388df7a1f48SPhilippe Mathieu-Daudé{ 'command': 'inject-nmi' } 389df7a1f48SPhilippe Mathieu-Daudé 390df7a1f48SPhilippe Mathieu-Daudé## 39181dddc1bSPhilippe Mathieu-Daudé# @KvmInfo: 39281dddc1bSPhilippe Mathieu-Daudé# 39381dddc1bSPhilippe Mathieu-Daudé# Information about support for KVM acceleration 39481dddc1bSPhilippe Mathieu-Daudé# 39581dddc1bSPhilippe Mathieu-Daudé# @enabled: true if KVM acceleration is active 39681dddc1bSPhilippe Mathieu-Daudé# 39781dddc1bSPhilippe Mathieu-Daudé# @present: true if KVM acceleration is built into this executable 39881dddc1bSPhilippe Mathieu-Daudé# 3999bc6e893SMarkus Armbruster# Since: 0.14 40081dddc1bSPhilippe Mathieu-Daudé## 40181dddc1bSPhilippe Mathieu-Daudé{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} } 40281dddc1bSPhilippe Mathieu-Daudé 40381dddc1bSPhilippe Mathieu-Daudé## 40481dddc1bSPhilippe Mathieu-Daudé# @query-kvm: 40581dddc1bSPhilippe Mathieu-Daudé# 40681dddc1bSPhilippe Mathieu-Daudé# Returns information about KVM acceleration 40781dddc1bSPhilippe Mathieu-Daudé# 40881dddc1bSPhilippe Mathieu-Daudé# Returns: @KvmInfo 40981dddc1bSPhilippe Mathieu-Daudé# 4109bc6e893SMarkus Armbruster# Since: 0.14 41181dddc1bSPhilippe Mathieu-Daudé# 41281dddc1bSPhilippe Mathieu-Daudé# Example: 41381dddc1bSPhilippe Mathieu-Daudé# 41481dddc1bSPhilippe Mathieu-Daudé# -> { "execute": "query-kvm" } 41581dddc1bSPhilippe Mathieu-Daudé# <- { "return": { "enabled": true, "present": true } } 41681dddc1bSPhilippe Mathieu-Daudé## 41781dddc1bSPhilippe Mathieu-Daudé{ 'command': 'query-kvm', 'returns': 'KvmInfo' } 41881dddc1bSPhilippe Mathieu-Daudé 41981dddc1bSPhilippe Mathieu-Daudé## 4208ac25c84SMarkus Armbruster# @NumaOptionsType: 4218ac25c84SMarkus Armbruster# 4228ac25c84SMarkus Armbruster# @node: NUMA nodes configuration 4238ac25c84SMarkus Armbruster# 4248ac25c84SMarkus Armbruster# @dist: NUMA distance configuration (since 2.10) 4258ac25c84SMarkus Armbruster# 4268ac25c84SMarkus Armbruster# @cpu: property based CPU(s) to node mapping (Since: 2.10) 4278ac25c84SMarkus Armbruster# 4289b12dfa0SLiu Jingqi# @hmat-lb: memory latency and bandwidth information (Since: 5.0) 4299b12dfa0SLiu Jingqi# 430c412a48dSLiu Jingqi# @hmat-cache: memory side cache information (Since: 5.0) 431c412a48dSLiu Jingqi# 4328ac25c84SMarkus Armbruster# Since: 2.1 4338ac25c84SMarkus Armbruster## 4348ac25c84SMarkus Armbruster{ 'enum': 'NumaOptionsType', 435c412a48dSLiu Jingqi 'data': [ 'node', 'dist', 'cpu', 'hmat-lb', 'hmat-cache' ] } 4368ac25c84SMarkus Armbruster 4378ac25c84SMarkus Armbruster## 4388ac25c84SMarkus Armbruster# @NumaOptions: 4398ac25c84SMarkus Armbruster# 4408ac25c84SMarkus Armbruster# A discriminated record of NUMA options. (for OptsVisitor) 4418ac25c84SMarkus Armbruster# 44289a2273bSMarkus Armbruster# @type: NUMA option type 44389a2273bSMarkus Armbruster# 4448ac25c84SMarkus Armbruster# Since: 2.1 4458ac25c84SMarkus Armbruster## 4468ac25c84SMarkus Armbruster{ 'union': 'NumaOptions', 4478ac25c84SMarkus Armbruster 'base': { 'type': 'NumaOptionsType' }, 4488ac25c84SMarkus Armbruster 'discriminator': 'type', 4498ac25c84SMarkus Armbruster 'data': { 4508ac25c84SMarkus Armbruster 'node': 'NumaNodeOptions', 4518ac25c84SMarkus Armbruster 'dist': 'NumaDistOptions', 4529b12dfa0SLiu Jingqi 'cpu': 'NumaCpuOptions', 453c412a48dSLiu Jingqi 'hmat-lb': 'NumaHmatLBOptions', 454c412a48dSLiu Jingqi 'hmat-cache': 'NumaHmatCacheOptions' }} 4558ac25c84SMarkus Armbruster 4568ac25c84SMarkus Armbruster## 4578ac25c84SMarkus Armbruster# @NumaNodeOptions: 4588ac25c84SMarkus Armbruster# 4598ac25c84SMarkus Armbruster# Create a guest NUMA node. (for OptsVisitor) 4608ac25c84SMarkus Armbruster# 4618ac25c84SMarkus Armbruster# @nodeid: NUMA node ID (increase by 1 from 0 if omitted) 4628ac25c84SMarkus Armbruster# 463a937b6aaSMarkus Armbruster# @cpus: VCPUs belonging to this node (assign VCPUS round-robin if 464a937b6aaSMarkus Armbruster# omitted) 4658ac25c84SMarkus Armbruster# 4668ac25c84SMarkus Armbruster# @mem: memory size of this node; mutually exclusive with @memdev. 467a937b6aaSMarkus Armbruster# Equally divide total memory among nodes if both @mem and @memdev 468a937b6aaSMarkus Armbruster# are omitted. 4698ac25c84SMarkus Armbruster# 470a937b6aaSMarkus Armbruster# @memdev: memory backend object. If specified for one node, it must 471a937b6aaSMarkus Armbruster# be specified for all nodes. 4728ac25c84SMarkus Armbruster# 473a937b6aaSMarkus Armbruster# @initiator: defined in ACPI 6.3 Chapter 5.2.27.3 Table 5-145, points 474a937b6aaSMarkus Armbruster# to the nodeid which has the memory controller responsible for 475a937b6aaSMarkus Armbruster# this NUMA node. This field provides additional information as 476a937b6aaSMarkus Armbruster# to the initiator node that is closest (as in directly attached) 477a937b6aaSMarkus Armbruster# to this node, and therefore has the best performance (since 5.0) 478244b3f44STao Xu# 4798ac25c84SMarkus Armbruster# Since: 2.1 4808ac25c84SMarkus Armbruster## 4818ac25c84SMarkus Armbruster{ 'struct': 'NumaNodeOptions', 4828ac25c84SMarkus Armbruster 'data': { 4838ac25c84SMarkus Armbruster '*nodeid': 'uint16', 4848ac25c84SMarkus Armbruster '*cpus': ['uint16'], 4858ac25c84SMarkus Armbruster '*mem': 'size', 486244b3f44STao Xu '*memdev': 'str', 487244b3f44STao Xu '*initiator': 'uint16' }} 4888ac25c84SMarkus Armbruster 4898ac25c84SMarkus Armbruster## 4908ac25c84SMarkus Armbruster# @NumaDistOptions: 4918ac25c84SMarkus Armbruster# 4928ac25c84SMarkus Armbruster# Set the distance between 2 NUMA nodes. 4938ac25c84SMarkus Armbruster# 4948ac25c84SMarkus Armbruster# @src: source NUMA node. 4958ac25c84SMarkus Armbruster# 4968ac25c84SMarkus Armbruster# @dst: destination NUMA node. 4978ac25c84SMarkus Armbruster# 498a937b6aaSMarkus Armbruster# @val: NUMA distance from source node to destination node. When a 499a937b6aaSMarkus Armbruster# node is unreachable from another node, set the distance between 500a937b6aaSMarkus Armbruster# them to 255. 5018ac25c84SMarkus Armbruster# 5028ac25c84SMarkus Armbruster# Since: 2.10 5038ac25c84SMarkus Armbruster## 5048ac25c84SMarkus Armbruster{ 'struct': 'NumaDistOptions', 5058ac25c84SMarkus Armbruster 'data': { 5068ac25c84SMarkus Armbruster 'src': 'uint16', 5078ac25c84SMarkus Armbruster 'dst': 'uint16', 5088ac25c84SMarkus Armbruster 'val': 'uint8' }} 5098ac25c84SMarkus Armbruster 5108ac25c84SMarkus Armbruster## 511aadfe320SJonathan Cameron# @CXLFixedMemoryWindowOptions: 512aadfe320SJonathan Cameron# 513aadfe320SJonathan Cameron# Create a CXL Fixed Memory Window 514aadfe320SJonathan Cameron# 515aadfe320SJonathan Cameron# @size: Size of the Fixed Memory Window in bytes. Must be a multiple 516aadfe320SJonathan Cameron# of 256MiB. 517a937b6aaSMarkus Armbruster# 518aadfe320SJonathan Cameron# @interleave-granularity: Number of contiguous bytes for which 519a937b6aaSMarkus Armbruster# accesses will go to a given interleave target. Accepted values 520a937b6aaSMarkus Armbruster# [256, 512, 1k, 2k, 4k, 8k, 16k] 521a937b6aaSMarkus Armbruster# 522a937b6aaSMarkus Armbruster# @targets: Target root bridge IDs from -device ...,id=<ID> for each 523a937b6aaSMarkus Armbruster# root bridge. 524aadfe320SJonathan Cameron# 5257c3def93SMarkus Armbruster# Since: 7.1 526aadfe320SJonathan Cameron## 527aadfe320SJonathan Cameron{ 'struct': 'CXLFixedMemoryWindowOptions', 528aadfe320SJonathan Cameron 'data': { 529aadfe320SJonathan Cameron 'size': 'size', 530aadfe320SJonathan Cameron '*interleave-granularity': 'size', 531aadfe320SJonathan Cameron 'targets': ['str'] }} 532aadfe320SJonathan Cameron 533aadfe320SJonathan Cameron## 53403b39fcfSJonathan Cameron# @CXLFMWProperties: 53503b39fcfSJonathan Cameron# 53603b39fcfSJonathan Cameron# List of CXL Fixed Memory Windows. 53703b39fcfSJonathan Cameron# 53803b39fcfSJonathan Cameron# @cxl-fmw: List of CXLFixedMemoryWindowOptions 53903b39fcfSJonathan Cameron# 5407c3def93SMarkus Armbruster# Since: 7.1 54103b39fcfSJonathan Cameron## 54203b39fcfSJonathan Cameron{ 'struct' : 'CXLFMWProperties', 54303b39fcfSJonathan Cameron 'data': { 'cxl-fmw': ['CXLFixedMemoryWindowOptions'] } 54403b39fcfSJonathan Cameron} 54503b39fcfSJonathan Cameron 54603b39fcfSJonathan Cameron## 5478ac25c84SMarkus Armbruster# @X86CPURegister32: 5488ac25c84SMarkus Armbruster# 5498ac25c84SMarkus Armbruster# A X86 32-bit register 5508ac25c84SMarkus Armbruster# 5518ac25c84SMarkus Armbruster# Since: 1.5 5528ac25c84SMarkus Armbruster## 5538ac25c84SMarkus Armbruster{ 'enum': 'X86CPURegister32', 5548ac25c84SMarkus Armbruster 'data': [ 'EAX', 'EBX', 'ECX', 'EDX', 'ESP', 'EBP', 'ESI', 'EDI' ] } 5558ac25c84SMarkus Armbruster 5568ac25c84SMarkus Armbruster## 5578ac25c84SMarkus Armbruster# @X86CPUFeatureWordInfo: 5588ac25c84SMarkus Armbruster# 5598ac25c84SMarkus Armbruster# Information about a X86 CPU feature word 5608ac25c84SMarkus Armbruster# 561a937b6aaSMarkus Armbruster# @cpuid-input-eax: Input EAX value for CPUID instruction for that 562a937b6aaSMarkus Armbruster# feature word 5638ac25c84SMarkus Armbruster# 5648ac25c84SMarkus Armbruster# @cpuid-input-ecx: Input ECX value for CPUID instruction for that 5658ac25c84SMarkus Armbruster# feature word 5668ac25c84SMarkus Armbruster# 5678ac25c84SMarkus Armbruster# @cpuid-register: Output register containing the feature bits 5688ac25c84SMarkus Armbruster# 5698ac25c84SMarkus Armbruster# @features: value of output register, containing the feature bits 5708ac25c84SMarkus Armbruster# 5718ac25c84SMarkus Armbruster# Since: 1.5 5728ac25c84SMarkus Armbruster## 5738ac25c84SMarkus Armbruster{ 'struct': 'X86CPUFeatureWordInfo', 5748ac25c84SMarkus Armbruster 'data': { 'cpuid-input-eax': 'int', 5758ac25c84SMarkus Armbruster '*cpuid-input-ecx': 'int', 5768ac25c84SMarkus Armbruster 'cpuid-register': 'X86CPURegister32', 5778ac25c84SMarkus Armbruster 'features': 'int' } } 5788ac25c84SMarkus Armbruster 5798ac25c84SMarkus Armbruster## 5808ac25c84SMarkus Armbruster# @DummyForceArrays: 5818ac25c84SMarkus Armbruster# 582a937b6aaSMarkus Armbruster# Not used by QMP; hack to let us use X86CPUFeatureWordInfoList 583a937b6aaSMarkus Armbruster# internally 5848ac25c84SMarkus Armbruster# 5858ac25c84SMarkus Armbruster# Since: 2.5 5868ac25c84SMarkus Armbruster## 5878ac25c84SMarkus Armbruster{ 'struct': 'DummyForceArrays', 5888ac25c84SMarkus Armbruster 'data': { 'unused': ['X86CPUFeatureWordInfo'] } } 5898ac25c84SMarkus Armbruster 5908ac25c84SMarkus Armbruster## 5918ac25c84SMarkus Armbruster# @NumaCpuOptions: 5928ac25c84SMarkus Armbruster# 593a937b6aaSMarkus Armbruster# Option "-numa cpu" overrides default cpu to node mapping. It 594a937b6aaSMarkus Armbruster# accepts the same set of cpu properties as returned by 5958ac25c84SMarkus Armbruster# query-hotpluggable-cpus[].props, where node-id could be used to 5968ac25c84SMarkus Armbruster# override default node mapping. 5978ac25c84SMarkus Armbruster# 5988ac25c84SMarkus Armbruster# Since: 2.10 5998ac25c84SMarkus Armbruster## 6008ac25c84SMarkus Armbruster{ 'struct': 'NumaCpuOptions', 6018ac25c84SMarkus Armbruster 'base': 'CpuInstanceProperties', 6028ac25c84SMarkus Armbruster 'data' : {} } 6038ac25c84SMarkus Armbruster 6048ac25c84SMarkus Armbruster## 6059b12dfa0SLiu Jingqi# @HmatLBMemoryHierarchy: 6069b12dfa0SLiu Jingqi# 6079b12dfa0SLiu Jingqi# The memory hierarchy in the System Locality Latency and Bandwidth 6089b12dfa0SLiu Jingqi# Information Structure of HMAT (Heterogeneous Memory Attribute Table) 6099b12dfa0SLiu Jingqi# 6109b12dfa0SLiu Jingqi# For more information about @HmatLBMemoryHierarchy, see chapter 6119b12dfa0SLiu Jingqi# 5.2.27.4: Table 5-146: Field "Flags" of ACPI 6.3 spec. 6129b12dfa0SLiu Jingqi# 6139b12dfa0SLiu Jingqi# @memory: the structure represents the memory performance 6149b12dfa0SLiu Jingqi# 6159b12dfa0SLiu Jingqi# @first-level: first level of memory side cache 6169b12dfa0SLiu Jingqi# 6179b12dfa0SLiu Jingqi# @second-level: second level of memory side cache 6189b12dfa0SLiu Jingqi# 6199b12dfa0SLiu Jingqi# @third-level: third level of memory side cache 6209b12dfa0SLiu Jingqi# 6219b12dfa0SLiu Jingqi# Since: 5.0 6229b12dfa0SLiu Jingqi## 6239b12dfa0SLiu Jingqi{ 'enum': 'HmatLBMemoryHierarchy', 6249b12dfa0SLiu Jingqi 'data': [ 'memory', 'first-level', 'second-level', 'third-level' ] } 6259b12dfa0SLiu Jingqi 6269b12dfa0SLiu Jingqi## 6279b12dfa0SLiu Jingqi# @HmatLBDataType: 6289b12dfa0SLiu Jingqi# 629a937b6aaSMarkus Armbruster# Data type in the System Locality Latency and Bandwidth Information 630a937b6aaSMarkus Armbruster# Structure of HMAT (Heterogeneous Memory Attribute Table) 6319b12dfa0SLiu Jingqi# 632a937b6aaSMarkus Armbruster# For more information about @HmatLBDataType, see chapter 5.2.27.4: 633a937b6aaSMarkus Armbruster# Table 5-146: Field "Data Type" of ACPI 6.3 spec. 6349b12dfa0SLiu Jingqi# 6359b12dfa0SLiu Jingqi# @access-latency: access latency (nanoseconds) 6369b12dfa0SLiu Jingqi# 6379b12dfa0SLiu Jingqi# @read-latency: read latency (nanoseconds) 6389b12dfa0SLiu Jingqi# 6399b12dfa0SLiu Jingqi# @write-latency: write latency (nanoseconds) 6409b12dfa0SLiu Jingqi# 6419b12dfa0SLiu Jingqi# @access-bandwidth: access bandwidth (Bytes per second) 6429b12dfa0SLiu Jingqi# 6439b12dfa0SLiu Jingqi# @read-bandwidth: read bandwidth (Bytes per second) 6449b12dfa0SLiu Jingqi# 6459b12dfa0SLiu Jingqi# @write-bandwidth: write bandwidth (Bytes per second) 6469b12dfa0SLiu Jingqi# 6479b12dfa0SLiu Jingqi# Since: 5.0 6489b12dfa0SLiu Jingqi## 6499b12dfa0SLiu Jingqi{ 'enum': 'HmatLBDataType', 6509b12dfa0SLiu Jingqi 'data': [ 'access-latency', 'read-latency', 'write-latency', 6519b12dfa0SLiu Jingqi 'access-bandwidth', 'read-bandwidth', 'write-bandwidth' ] } 6529b12dfa0SLiu Jingqi 6539b12dfa0SLiu Jingqi## 6549b12dfa0SLiu Jingqi# @NumaHmatLBOptions: 6559b12dfa0SLiu Jingqi# 656a937b6aaSMarkus Armbruster# Set the system locality latency and bandwidth information between 657a937b6aaSMarkus Armbruster# Initiator and Target proximity Domains. 6589b12dfa0SLiu Jingqi# 659a937b6aaSMarkus Armbruster# For more information about @NumaHmatLBOptions, see chapter 5.2.27.4: 660a937b6aaSMarkus Armbruster# Table 5-146 of ACPI 6.3 spec. 6619b12dfa0SLiu Jingqi# 6629b12dfa0SLiu Jingqi# @initiator: the Initiator Proximity Domain. 6639b12dfa0SLiu Jingqi# 6649b12dfa0SLiu Jingqi# @target: the Target Proximity Domain. 6659b12dfa0SLiu Jingqi# 666a937b6aaSMarkus Armbruster# @hierarchy: the Memory Hierarchy. Indicates the performance of 667a937b6aaSMarkus Armbruster# memory or side cache. 6689b12dfa0SLiu Jingqi# 669a937b6aaSMarkus Armbruster# @data-type: presents the type of data, access/read/write latency or 670a937b6aaSMarkus Armbruster# hit latency. 6719b12dfa0SLiu Jingqi# 672a937b6aaSMarkus Armbruster# @latency: the value of latency from @initiator to @target proximity 673a937b6aaSMarkus Armbruster# domain, the latency unit is "ns(nanosecond)". 6749b12dfa0SLiu Jingqi# 6759b12dfa0SLiu Jingqi# @bandwidth: the value of bandwidth between @initiator and @target 676a937b6aaSMarkus Armbruster# proximity domain, the bandwidth unit is "Bytes per second". 6779b12dfa0SLiu Jingqi# 6789b12dfa0SLiu Jingqi# Since: 5.0 6799b12dfa0SLiu Jingqi## 6809b12dfa0SLiu Jingqi{ 'struct': 'NumaHmatLBOptions', 6819b12dfa0SLiu Jingqi 'data': { 6829b12dfa0SLiu Jingqi 'initiator': 'uint16', 6839b12dfa0SLiu Jingqi 'target': 'uint16', 6849b12dfa0SLiu Jingqi 'hierarchy': 'HmatLBMemoryHierarchy', 6859b12dfa0SLiu Jingqi 'data-type': 'HmatLBDataType', 6869b12dfa0SLiu Jingqi '*latency': 'uint64', 6879b12dfa0SLiu Jingqi '*bandwidth': 'size' }} 6889b12dfa0SLiu Jingqi 6899b12dfa0SLiu Jingqi## 690c412a48dSLiu Jingqi# @HmatCacheAssociativity: 691c412a48dSLiu Jingqi# 692c412a48dSLiu Jingqi# Cache associativity in the Memory Side Cache Information Structure 693c412a48dSLiu Jingqi# of HMAT 694c412a48dSLiu Jingqi# 695c412a48dSLiu Jingqi# For more information of @HmatCacheAssociativity, see chapter 696c412a48dSLiu Jingqi# 5.2.27.5: Table 5-147 of ACPI 6.3 spec. 697c412a48dSLiu Jingqi# 698a937b6aaSMarkus Armbruster# @none: None (no memory side cache in this proximity domain, or cache 699a937b6aaSMarkus Armbruster# associativity unknown) 700c412a48dSLiu Jingqi# 701c412a48dSLiu Jingqi# @direct: Direct Mapped 702c412a48dSLiu Jingqi# 703c412a48dSLiu Jingqi# @complex: Complex Cache Indexing (implementation specific) 704c412a48dSLiu Jingqi# 705c412a48dSLiu Jingqi# Since: 5.0 706c412a48dSLiu Jingqi## 707c412a48dSLiu Jingqi{ 'enum': 'HmatCacheAssociativity', 708c412a48dSLiu Jingqi 'data': [ 'none', 'direct', 'complex' ] } 709c412a48dSLiu Jingqi 710c412a48dSLiu Jingqi## 711c412a48dSLiu Jingqi# @HmatCacheWritePolicy: 712c412a48dSLiu Jingqi# 713a937b6aaSMarkus Armbruster# Cache write policy in the Memory Side Cache Information Structure of 714a937b6aaSMarkus Armbruster# HMAT 715c412a48dSLiu Jingqi# 716a937b6aaSMarkus Armbruster# For more information of @HmatCacheWritePolicy, see chapter 5.2.27.5: 717a937b6aaSMarkus Armbruster# Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec. 718c412a48dSLiu Jingqi# 719a937b6aaSMarkus Armbruster# @none: None (no memory side cache in this proximity domain, or cache 720a937b6aaSMarkus Armbruster# write policy unknown) 721c412a48dSLiu Jingqi# 722c412a48dSLiu Jingqi# @write-back: Write Back (WB) 723c412a48dSLiu Jingqi# 724c412a48dSLiu Jingqi# @write-through: Write Through (WT) 725c412a48dSLiu Jingqi# 726c412a48dSLiu Jingqi# Since: 5.0 727c412a48dSLiu Jingqi## 728c412a48dSLiu Jingqi{ 'enum': 'HmatCacheWritePolicy', 729c412a48dSLiu Jingqi 'data': [ 'none', 'write-back', 'write-through' ] } 730c412a48dSLiu Jingqi 731c412a48dSLiu Jingqi## 732c412a48dSLiu Jingqi# @NumaHmatCacheOptions: 733c412a48dSLiu Jingqi# 734c412a48dSLiu Jingqi# Set the memory side cache information for a given memory domain. 735c412a48dSLiu Jingqi# 736a937b6aaSMarkus Armbruster# For more information of @NumaHmatCacheOptions, see chapter 5.2.27.5: 737a937b6aaSMarkus Armbruster# Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec. 738c412a48dSLiu Jingqi# 739c412a48dSLiu Jingqi# @node-id: the memory proximity domain to which the memory belongs. 740c412a48dSLiu Jingqi# 741c412a48dSLiu Jingqi# @size: the size of memory side cache in bytes. 742c412a48dSLiu Jingqi# 743c412a48dSLiu Jingqi# @level: the cache level described in this structure. 744c412a48dSLiu Jingqi# 745c412a48dSLiu Jingqi# @associativity: the cache associativity, 746c412a48dSLiu Jingqi# none/direct-mapped/complex(complex cache indexing). 747c412a48dSLiu Jingqi# 748c412a48dSLiu Jingqi# @policy: the write policy, none/write-back/write-through. 749c412a48dSLiu Jingqi# 750c412a48dSLiu Jingqi# @line: the cache Line size in bytes. 751c412a48dSLiu Jingqi# 752c412a48dSLiu Jingqi# Since: 5.0 753c412a48dSLiu Jingqi## 754c412a48dSLiu Jingqi{ 'struct': 'NumaHmatCacheOptions', 755c412a48dSLiu Jingqi 'data': { 756c412a48dSLiu Jingqi 'node-id': 'uint32', 757c412a48dSLiu Jingqi 'size': 'size', 758c412a48dSLiu Jingqi 'level': 'uint8', 759c412a48dSLiu Jingqi 'associativity': 'HmatCacheAssociativity', 760c412a48dSLiu Jingqi 'policy': 'HmatCacheWritePolicy', 761c412a48dSLiu Jingqi 'line': 'uint16' }} 762c412a48dSLiu Jingqi 763c412a48dSLiu Jingqi## 764d4130cbfSPhilippe Mathieu-Daudé# @memsave: 765d4130cbfSPhilippe Mathieu-Daudé# 766d4130cbfSPhilippe Mathieu-Daudé# Save a portion of guest memory to a file. 767d4130cbfSPhilippe Mathieu-Daudé# 768d4130cbfSPhilippe Mathieu-Daudé# @val: the virtual address of the guest to start from 769d4130cbfSPhilippe Mathieu-Daudé# 770d4130cbfSPhilippe Mathieu-Daudé# @size: the size of memory region to save 771d4130cbfSPhilippe Mathieu-Daudé# 772d4130cbfSPhilippe Mathieu-Daudé# @filename: the file to save the memory to as binary data 773d4130cbfSPhilippe Mathieu-Daudé# 774d4130cbfSPhilippe Mathieu-Daudé# @cpu-index: the index of the virtual CPU to use for translating the 775d4130cbfSPhilippe Mathieu-Daudé# virtual address (defaults to CPU 0) 776d4130cbfSPhilippe Mathieu-Daudé# 7779bc6e893SMarkus Armbruster# Since: 0.14 778d4130cbfSPhilippe Mathieu-Daudé# 779d4130cbfSPhilippe Mathieu-Daudé# Notes: Errors were not reliably returned until 1.1 780d4130cbfSPhilippe Mathieu-Daudé# 781d4130cbfSPhilippe Mathieu-Daudé# Example: 782d4130cbfSPhilippe Mathieu-Daudé# 783d4130cbfSPhilippe Mathieu-Daudé# -> { "execute": "memsave", 784d4130cbfSPhilippe Mathieu-Daudé# "arguments": { "val": 10, 785d4130cbfSPhilippe Mathieu-Daudé# "size": 100, 786d4130cbfSPhilippe Mathieu-Daudé# "filename": "/tmp/virtual-mem-dump" } } 787d4130cbfSPhilippe Mathieu-Daudé# <- { "return": {} } 788d4130cbfSPhilippe Mathieu-Daudé## 789d4130cbfSPhilippe Mathieu-Daudé{ 'command': 'memsave', 790d4130cbfSPhilippe Mathieu-Daudé 'data': {'val': 'int', 'size': 'int', 'filename': 'str', '*cpu-index': 'int'} } 791d4130cbfSPhilippe Mathieu-Daudé 792d4130cbfSPhilippe Mathieu-Daudé## 793d4130cbfSPhilippe Mathieu-Daudé# @pmemsave: 794d4130cbfSPhilippe Mathieu-Daudé# 795d4130cbfSPhilippe Mathieu-Daudé# Save a portion of guest physical memory to a file. 796d4130cbfSPhilippe Mathieu-Daudé# 797d4130cbfSPhilippe Mathieu-Daudé# @val: the physical address of the guest to start from 798d4130cbfSPhilippe Mathieu-Daudé# 799d4130cbfSPhilippe Mathieu-Daudé# @size: the size of memory region to save 800d4130cbfSPhilippe Mathieu-Daudé# 801d4130cbfSPhilippe Mathieu-Daudé# @filename: the file to save the memory to as binary data 802d4130cbfSPhilippe Mathieu-Daudé# 8039bc6e893SMarkus Armbruster# Since: 0.14 804d4130cbfSPhilippe Mathieu-Daudé# 805d4130cbfSPhilippe Mathieu-Daudé# Notes: Errors were not reliably returned until 1.1 806d4130cbfSPhilippe Mathieu-Daudé# 807d4130cbfSPhilippe Mathieu-Daudé# Example: 808d4130cbfSPhilippe Mathieu-Daudé# 809d4130cbfSPhilippe Mathieu-Daudé# -> { "execute": "pmemsave", 810d4130cbfSPhilippe Mathieu-Daudé# "arguments": { "val": 10, 811d4130cbfSPhilippe Mathieu-Daudé# "size": 100, 812d4130cbfSPhilippe Mathieu-Daudé# "filename": "/tmp/physical-mem-dump" } } 813d4130cbfSPhilippe Mathieu-Daudé# <- { "return": {} } 814d4130cbfSPhilippe Mathieu-Daudé## 815d4130cbfSPhilippe Mathieu-Daudé{ 'command': 'pmemsave', 816d4130cbfSPhilippe Mathieu-Daudé 'data': {'val': 'int', 'size': 'int', 'filename': 'str'} } 817d4130cbfSPhilippe Mathieu-Daudé 818d4130cbfSPhilippe Mathieu-Daudé## 8198ac25c84SMarkus Armbruster# @Memdev: 8208ac25c84SMarkus Armbruster# 8218ac25c84SMarkus Armbruster# Information about memory backend 8228ac25c84SMarkus Armbruster# 8238ac25c84SMarkus Armbruster# @id: backend's ID if backend has 'id' property (since 2.9) 8248ac25c84SMarkus Armbruster# 8258ac25c84SMarkus Armbruster# @size: memory backend size 8268ac25c84SMarkus Armbruster# 827157cfaf9SDavid Hildenbrand# @merge: whether memory merge support is enabled 8288ac25c84SMarkus Armbruster# 829157cfaf9SDavid Hildenbrand# @dump: whether memory backend's memory is included in a core dump 8308ac25c84SMarkus Armbruster# 831157cfaf9SDavid Hildenbrand# @prealloc: whether memory was preallocated 8328ac25c84SMarkus Armbruster# 833d300fc54SDavid Hildenbrand# @share: whether memory is private to QEMU or shared (since 6.1) 834d300fc54SDavid Hildenbrand# 835a937b6aaSMarkus Armbruster# @reserve: whether swap space (or huge pages) was reserved if 836a937b6aaSMarkus Armbruster# applicable. This corresponds to the user configuration and not 837a937b6aaSMarkus Armbruster# the actual behavior implemented in the OS to perform the 838a937b6aaSMarkus Armbruster# reservation. For example, Linux will never reserve swap space 839a937b6aaSMarkus Armbruster# for shared file mappings. (since 6.1) 84069647f9dSDavid Hildenbrand# 8418ac25c84SMarkus Armbruster# @host-nodes: host nodes for its memory policy 8428ac25c84SMarkus Armbruster# 8438ac25c84SMarkus Armbruster# @policy: memory policy of memory backend 8448ac25c84SMarkus Armbruster# 8458ac25c84SMarkus Armbruster# Since: 2.1 8468ac25c84SMarkus Armbruster## 8478ac25c84SMarkus Armbruster{ 'struct': 'Memdev', 8488ac25c84SMarkus Armbruster 'data': { 8498ac25c84SMarkus Armbruster '*id': 'str', 8508ac25c84SMarkus Armbruster 'size': 'size', 8518ac25c84SMarkus Armbruster 'merge': 'bool', 8528ac25c84SMarkus Armbruster 'dump': 'bool', 8538ac25c84SMarkus Armbruster 'prealloc': 'bool', 854d300fc54SDavid Hildenbrand 'share': 'bool', 85569647f9dSDavid Hildenbrand '*reserve': 'bool', 8568ac25c84SMarkus Armbruster 'host-nodes': ['uint16'], 8578ac25c84SMarkus Armbruster 'policy': 'HostMemPolicy' }} 8588ac25c84SMarkus Armbruster 8598ac25c84SMarkus Armbruster## 8608ac25c84SMarkus Armbruster# @query-memdev: 8618ac25c84SMarkus Armbruster# 8628ac25c84SMarkus Armbruster# Returns information for all memory backends. 8638ac25c84SMarkus Armbruster# 8648ac25c84SMarkus Armbruster# Returns: a list of @Memdev. 8658ac25c84SMarkus Armbruster# 8668ac25c84SMarkus Armbruster# Since: 2.1 8678ac25c84SMarkus Armbruster# 8688ac25c84SMarkus Armbruster# Example: 8698ac25c84SMarkus Armbruster# 8708ac25c84SMarkus Armbruster# -> { "execute": "query-memdev" } 8718ac25c84SMarkus Armbruster# <- { "return": [ 8728ac25c84SMarkus Armbruster# { 8738ac25c84SMarkus Armbruster# "id": "mem1", 8748ac25c84SMarkus Armbruster# "size": 536870912, 8758ac25c84SMarkus Armbruster# "merge": false, 8768ac25c84SMarkus Armbruster# "dump": true, 8778ac25c84SMarkus Armbruster# "prealloc": false, 8787c90031dSVictor Toso# "share": false, 8798ac25c84SMarkus Armbruster# "host-nodes": [0, 1], 8808ac25c84SMarkus Armbruster# "policy": "bind" 8818ac25c84SMarkus Armbruster# }, 8828ac25c84SMarkus Armbruster# { 8838ac25c84SMarkus Armbruster# "size": 536870912, 8848ac25c84SMarkus Armbruster# "merge": false, 8858ac25c84SMarkus Armbruster# "dump": true, 8868ac25c84SMarkus Armbruster# "prealloc": true, 8877c90031dSVictor Toso# "share": false, 8888ac25c84SMarkus Armbruster# "host-nodes": [2, 3], 8898ac25c84SMarkus Armbruster# "policy": "preferred" 8908ac25c84SMarkus Armbruster# } 8918ac25c84SMarkus Armbruster# ] 8928ac25c84SMarkus Armbruster# } 8938ac25c84SMarkus Armbruster## 8948ac25c84SMarkus Armbruster{ 'command': 'query-memdev', 'returns': ['Memdev'], 'allow-preconfig': true } 8958ac25c84SMarkus Armbruster 8968ac25c84SMarkus Armbruster## 8978ac25c84SMarkus Armbruster# @CpuInstanceProperties: 8988ac25c84SMarkus Armbruster# 899a937b6aaSMarkus Armbruster# List of properties to be used for hotplugging a CPU instance, it 900a937b6aaSMarkus Armbruster# should be passed by management with device_add command when a CPU is 901a937b6aaSMarkus Armbruster# being hotplugged. 9028ac25c84SMarkus Armbruster# 9033da4aef8SNina Schoetterl-Glausch# Which members are optional and which mandatory depends on the 9043da4aef8SNina Schoetterl-Glausch# architecture and board. 9053da4aef8SNina Schoetterl-Glausch# 9060d177cddSPierre Morel# For s390x see :ref:`cpu-topology-s390x`. 9070d177cddSPierre Morel# 9083da4aef8SNina Schoetterl-Glausch# The ids other than the node-id specify the position of the CPU 9093da4aef8SNina Schoetterl-Glausch# within the CPU topology (as defined by the machine property "smp", 9103da4aef8SNina Schoetterl-Glausch# thus see also type @SMPConfiguration) 9113da4aef8SNina Schoetterl-Glausch# 9128ac25c84SMarkus Armbruster# @node-id: NUMA node ID the CPU belongs to 913a937b6aaSMarkus Armbruster# 9145de1aff2SPierre Morel# @drawer-id: drawer number within CPU topology the CPU belongs to 9155de1aff2SPierre Morel# (since 8.2) 9165de1aff2SPierre Morel# 9175de1aff2SPierre Morel# @book-id: book number within parent container the CPU belongs to 9185de1aff2SPierre Morel# (since 8.2) 9195de1aff2SPierre Morel# 9205de1aff2SPierre Morel# @socket-id: socket number within parent container the CPU belongs to 921a937b6aaSMarkus Armbruster# 9223da4aef8SNina Schoetterl-Glausch# @die-id: die number within the parent container the CPU belongs to 9233da4aef8SNina Schoetterl-Glausch# (since 4.1) 924a937b6aaSMarkus Armbruster# 9253da4aef8SNina Schoetterl-Glausch# @cluster-id: cluster number within the parent container the CPU 9263da4aef8SNina Schoetterl-Glausch# belongs to (since 7.1) 927a937b6aaSMarkus Armbruster# 9283da4aef8SNina Schoetterl-Glausch# @core-id: core number within the parent container the CPU 9293da4aef8SNina Schoetterl-Glausch# belongs to 930a937b6aaSMarkus Armbruster# 9313da4aef8SNina Schoetterl-Glausch# @thread-id: thread number within the core the CPU belongs to 9328ac25c84SMarkus Armbruster# 9333da4aef8SNina Schoetterl-Glausch# Note: management should be prepared to pass through additional 9343da4aef8SNina Schoetterl-Glausch# properties with device_add. 9358ac25c84SMarkus Armbruster# 9368ac25c84SMarkus Armbruster# Since: 2.7 9378ac25c84SMarkus Armbruster## 9388ac25c84SMarkus Armbruster{ 'struct': 'CpuInstanceProperties', 9393da4aef8SNina Schoetterl-Glausch # Keep these in sync with the properties device_add accepts 9408ac25c84SMarkus Armbruster 'data': { '*node-id': 'int', 9415de1aff2SPierre Morel '*drawer-id': 'int', 9425de1aff2SPierre Morel '*book-id': 'int', 9438ac25c84SMarkus Armbruster '*socket-id': 'int', 944176d2cdaSLike Xu '*die-id': 'int', 9451dcf7001SGavin Shan '*cluster-id': 'int', 9468ac25c84SMarkus Armbruster '*core-id': 'int', 9478ac25c84SMarkus Armbruster '*thread-id': 'int' 9488ac25c84SMarkus Armbruster } 9498ac25c84SMarkus Armbruster} 9508ac25c84SMarkus Armbruster 9518ac25c84SMarkus Armbruster## 9528ac25c84SMarkus Armbruster# @HotpluggableCPU: 9538ac25c84SMarkus Armbruster# 9548ac25c84SMarkus Armbruster# @type: CPU object type for usage with device_add command 955a937b6aaSMarkus Armbruster# 9568ac25c84SMarkus Armbruster# @props: list of properties to be used for hotplugging CPU 957a937b6aaSMarkus Armbruster# 958a937b6aaSMarkus Armbruster# @vcpus-count: number of logical VCPU threads @HotpluggableCPU 959a937b6aaSMarkus Armbruster# provides 960a937b6aaSMarkus Armbruster# 961a937b6aaSMarkus Armbruster# @qom-path: link to existing CPU object if CPU is present or omitted 962a937b6aaSMarkus Armbruster# if CPU is not present. 9638ac25c84SMarkus Armbruster# 9648ac25c84SMarkus Armbruster# Since: 2.7 9658ac25c84SMarkus Armbruster## 9668ac25c84SMarkus Armbruster{ 'struct': 'HotpluggableCPU', 9678ac25c84SMarkus Armbruster 'data': { 'type': 'str', 9688ac25c84SMarkus Armbruster 'vcpus-count': 'int', 9698ac25c84SMarkus Armbruster 'props': 'CpuInstanceProperties', 9708ac25c84SMarkus Armbruster '*qom-path': 'str' 9718ac25c84SMarkus Armbruster } 9728ac25c84SMarkus Armbruster} 9738ac25c84SMarkus Armbruster 9748ac25c84SMarkus Armbruster## 9758ac25c84SMarkus Armbruster# @query-hotpluggable-cpus: 9768ac25c84SMarkus Armbruster# 9778ac25c84SMarkus Armbruster# TODO: Better documentation; currently there is none. 9788ac25c84SMarkus Armbruster# 9798ac25c84SMarkus Armbruster# Returns: a list of HotpluggableCPU objects. 9808ac25c84SMarkus Armbruster# 9818ac25c84SMarkus Armbruster# Since: 2.7 9828ac25c84SMarkus Armbruster# 98337fa48a4SMarkus Armbruster# Examples: 9848ac25c84SMarkus Armbruster# 985a937b6aaSMarkus Armbruster# For pseries machine type started with -smp 2,cores=2,maxcpus=4 -cpu 986a937b6aaSMarkus Armbruster# POWER8: 9878ac25c84SMarkus Armbruster# 9888ac25c84SMarkus Armbruster# -> { "execute": "query-hotpluggable-cpus" } 9898ac25c84SMarkus Armbruster# <- {"return": [ 990b4c32cbfSVictor Toso# { "props": { "core-id": 8 }, "type": "POWER8-spapr-cpu-core", 9918ac25c84SMarkus Armbruster# "vcpus-count": 1 }, 992b4c32cbfSVictor Toso# { "props": { "core-id": 0 }, "type": "POWER8-spapr-cpu-core", 9938ac25c84SMarkus Armbruster# "vcpus-count": 1, "qom-path": "/machine/unattached/device[0]"} 9948ac25c84SMarkus Armbruster# ]}' 9958ac25c84SMarkus Armbruster# 9968ac25c84SMarkus Armbruster# For pc machine type started with -smp 1,maxcpus=2: 9978ac25c84SMarkus Armbruster# 9988ac25c84SMarkus Armbruster# -> { "execute": "query-hotpluggable-cpus" } 9998ac25c84SMarkus Armbruster# <- {"return": [ 10008ac25c84SMarkus Armbruster# { 10018ac25c84SMarkus Armbruster# "type": "qemu64-x86_64-cpu", "vcpus-count": 1, 10028ac25c84SMarkus Armbruster# "props": {"core-id": 0, "socket-id": 1, "thread-id": 0} 10038ac25c84SMarkus Armbruster# }, 10048ac25c84SMarkus Armbruster# { 10058ac25c84SMarkus Armbruster# "qom-path": "/machine/unattached/device[0]", 10068ac25c84SMarkus Armbruster# "type": "qemu64-x86_64-cpu", "vcpus-count": 1, 10078ac25c84SMarkus Armbruster# "props": {"core-id": 0, "socket-id": 0, "thread-id": 0} 10088ac25c84SMarkus Armbruster# } 10098ac25c84SMarkus Armbruster# ]} 10108ac25c84SMarkus Armbruster# 1011a937b6aaSMarkus Armbruster# For s390x-virtio-ccw machine type started with -smp 1,maxcpus=2 -cpu 1012a937b6aaSMarkus Armbruster# qemu (Since: 2.11): 10138ac25c84SMarkus Armbruster# 10148ac25c84SMarkus Armbruster# -> { "execute": "query-hotpluggable-cpus" } 10158ac25c84SMarkus Armbruster# <- {"return": [ 10168ac25c84SMarkus Armbruster# { 10178ac25c84SMarkus Armbruster# "type": "qemu-s390x-cpu", "vcpus-count": 1, 10188ac25c84SMarkus Armbruster# "props": { "core-id": 1 } 10198ac25c84SMarkus Armbruster# }, 10208ac25c84SMarkus Armbruster# { 10218ac25c84SMarkus Armbruster# "qom-path": "/machine/unattached/device[0]", 10228ac25c84SMarkus Armbruster# "type": "qemu-s390x-cpu", "vcpus-count": 1, 10238ac25c84SMarkus Armbruster# "props": { "core-id": 0 } 10248ac25c84SMarkus Armbruster# } 10258ac25c84SMarkus Armbruster# ]} 10268ac25c84SMarkus Armbruster## 10278ac25c84SMarkus Armbruster{ 'command': 'query-hotpluggable-cpus', 'returns': ['HotpluggableCPU'], 10288ac25c84SMarkus Armbruster 'allow-preconfig': true } 10298ac25c84SMarkus Armbruster 10308ac25c84SMarkus Armbruster## 10318ac25c84SMarkus Armbruster# @set-numa-node: 10328ac25c84SMarkus Armbruster# 1033a937b6aaSMarkus Armbruster# Runtime equivalent of '-numa' CLI option, available at preconfigure 1034a937b6aaSMarkus Armbruster# stage to configure numa mapping before initializing machine. 10358ac25c84SMarkus Armbruster# 1036433a4fdcSMarkus Armbruster# Since: 3.0 10378ac25c84SMarkus Armbruster## 10388ac25c84SMarkus Armbruster{ 'command': 'set-numa-node', 'boxed': true, 10398ac25c84SMarkus Armbruster 'data': 'NumaOptions', 10408ac25c84SMarkus Armbruster 'allow-preconfig': true 10418ac25c84SMarkus Armbruster} 1042a83e24baSPhilippe Mathieu-Daudé 1043a83e24baSPhilippe Mathieu-Daudé## 1044a83e24baSPhilippe Mathieu-Daudé# @balloon: 1045a83e24baSPhilippe Mathieu-Daudé# 1046a83e24baSPhilippe Mathieu-Daudé# Request the balloon driver to change its balloon size. 1047a83e24baSPhilippe Mathieu-Daudé# 1048a937b6aaSMarkus Armbruster# @value: the target logical size of the VM in bytes. We can deduce 1049a937b6aaSMarkus Armbruster# the size of the balloon using this formula: 1050826bd069SPeter Maydell# 1051a83e24baSPhilippe Mathieu-Daudé# logical_vm_size = vm_ram_size - balloon_size 1052826bd069SPeter Maydell# 1053a83e24baSPhilippe Mathieu-Daudé# From it we have: balloon_size = vm_ram_size - @value 1054a83e24baSPhilippe Mathieu-Daudé# 10552746f060SMarkus Armbruster# Errors: 1056e6ab40feSMarkus Armbruster# - If the balloon driver is enabled but not functional because 1057e6ab40feSMarkus Armbruster# the KVM kernel module cannot support it, KVMMissingCap 1058a83e24baSPhilippe Mathieu-Daudé# - If no balloon device is present, DeviceNotActive 1059a83e24baSPhilippe Mathieu-Daudé# 1060a937b6aaSMarkus Armbruster# Notes: This command just issues a request to the guest. When it 1061a937b6aaSMarkus Armbruster# returns, the balloon size may not have changed. A guest can 1062a937b6aaSMarkus Armbruster# change the balloon size independent of this command. 1063a83e24baSPhilippe Mathieu-Daudé# 10649bc6e893SMarkus Armbruster# Since: 0.14 1065a83e24baSPhilippe Mathieu-Daudé# 1066a83e24baSPhilippe Mathieu-Daudé# Example: 1067a83e24baSPhilippe Mathieu-Daudé# 1068a83e24baSPhilippe Mathieu-Daudé# -> { "execute": "balloon", "arguments": { "value": 536870912 } } 1069a83e24baSPhilippe Mathieu-Daudé# <- { "return": {} } 1070a83e24baSPhilippe Mathieu-Daudé# 1071a83e24baSPhilippe Mathieu-Daudé# With a 2.5GiB guest this command inflated the ballon to 3GiB. 1072a83e24baSPhilippe Mathieu-Daudé## 1073a83e24baSPhilippe Mathieu-Daudé{ 'command': 'balloon', 'data': {'value': 'int'} } 1074a83e24baSPhilippe Mathieu-Daudé 1075a83e24baSPhilippe Mathieu-Daudé## 1076a83e24baSPhilippe Mathieu-Daudé# @BalloonInfo: 1077a83e24baSPhilippe Mathieu-Daudé# 1078a83e24baSPhilippe Mathieu-Daudé# Information about the guest balloon device. 1079a83e24baSPhilippe Mathieu-Daudé# 1080a937b6aaSMarkus Armbruster# @actual: the logical size of the VM in bytes Formula used: 1081a937b6aaSMarkus Armbruster# logical_vm_size = vm_ram_size - balloon_size 1082a83e24baSPhilippe Mathieu-Daudé# 10839bc6e893SMarkus Armbruster# Since: 0.14 1084a83e24baSPhilippe Mathieu-Daudé## 1085a83e24baSPhilippe Mathieu-Daudé{ 'struct': 'BalloonInfo', 'data': {'actual': 'int' } } 1086a83e24baSPhilippe Mathieu-Daudé 1087a83e24baSPhilippe Mathieu-Daudé## 1088a83e24baSPhilippe Mathieu-Daudé# @query-balloon: 1089a83e24baSPhilippe Mathieu-Daudé# 1090a83e24baSPhilippe Mathieu-Daudé# Return information about the balloon device. 1091a83e24baSPhilippe Mathieu-Daudé# 1092a937b6aaSMarkus Armbruster# Returns: 1093e2c1dcbcSMarkus Armbruster# @BalloonInfo 10942746f060SMarkus Armbruster# 10952746f060SMarkus Armbruster# Errors: 1096e6ab40feSMarkus Armbruster# - If the balloon driver is enabled but not functional because 1097e6ab40feSMarkus Armbruster# the KVM kernel module cannot support it, KVMMissingCap 1098a83e24baSPhilippe Mathieu-Daudé# - If no balloon device is present, DeviceNotActive 1099a83e24baSPhilippe Mathieu-Daudé# 11009bc6e893SMarkus Armbruster# Since: 0.14 1101a83e24baSPhilippe Mathieu-Daudé# 1102a83e24baSPhilippe Mathieu-Daudé# Example: 1103a83e24baSPhilippe Mathieu-Daudé# 1104a83e24baSPhilippe Mathieu-Daudé# -> { "execute": "query-balloon" } 1105a83e24baSPhilippe Mathieu-Daudé# <- { "return": { 11065d07159dSVictor Toso# "actual": 1073741824 1107a83e24baSPhilippe Mathieu-Daudé# } 1108a83e24baSPhilippe Mathieu-Daudé# } 1109a83e24baSPhilippe Mathieu-Daudé## 1110a83e24baSPhilippe Mathieu-Daudé{ 'command': 'query-balloon', 'returns': 'BalloonInfo' } 1111a83e24baSPhilippe Mathieu-Daudé 1112a83e24baSPhilippe Mathieu-Daudé## 1113a83e24baSPhilippe Mathieu-Daudé# @BALLOON_CHANGE: 1114a83e24baSPhilippe Mathieu-Daudé# 1115a937b6aaSMarkus Armbruster# Emitted when the guest changes the actual BALLOON level. This value 1116a937b6aaSMarkus Armbruster# is equivalent to the @actual field return by the 'query-balloon' 1117a937b6aaSMarkus Armbruster# command 1118a83e24baSPhilippe Mathieu-Daudé# 1119a937b6aaSMarkus Armbruster# @actual: the logical size of the VM in bytes Formula used: 1120a937b6aaSMarkus Armbruster# logical_vm_size = vm_ram_size - balloon_size 1121a83e24baSPhilippe Mathieu-Daudé# 1122a83e24baSPhilippe Mathieu-Daudé# Note: this event is rate-limited. 1123a83e24baSPhilippe Mathieu-Daudé# 1124a83e24baSPhilippe Mathieu-Daudé# Since: 1.2 1125a83e24baSPhilippe Mathieu-Daudé# 1126a83e24baSPhilippe Mathieu-Daudé# Example: 1127a83e24baSPhilippe Mathieu-Daudé# 1128a83e24baSPhilippe Mathieu-Daudé# <- { "event": "BALLOON_CHANGE", 1129a83e24baSPhilippe Mathieu-Daudé# "data": { "actual": 944766976 }, 1130a83e24baSPhilippe Mathieu-Daudé# "timestamp": { "seconds": 1267020223, "microseconds": 435656 } } 1131a83e24baSPhilippe Mathieu-Daudé## 1132a83e24baSPhilippe Mathieu-Daudé{ 'event': 'BALLOON_CHANGE', 1133a83e24baSPhilippe Mathieu-Daudé 'data': { 'actual': 'int' } } 1134b495ec6cSPhilippe Mathieu-Daudé 1135b495ec6cSPhilippe Mathieu-Daudé## 1136259ebed4SMaciej S. Szmigiero# @HvBalloonInfo: 1137259ebed4SMaciej S. Szmigiero# 1138259ebed4SMaciej S. Szmigiero# hv-balloon guest-provided memory status information. 1139259ebed4SMaciej S. Szmigiero# 1140259ebed4SMaciej S. Szmigiero# @committed: the amount of memory in use inside the guest plus the 1141259ebed4SMaciej S. Szmigiero# amount of the memory unusable inside the guest (ballooned out, 1142259ebed4SMaciej S. Szmigiero# offline, etc.) 1143259ebed4SMaciej S. Szmigiero# 1144259ebed4SMaciej S. Szmigiero# @available: the amount of the memory inside the guest available for 1145259ebed4SMaciej S. Szmigiero# new allocations ("free") 1146259ebed4SMaciej S. Szmigiero# 1147259ebed4SMaciej S. Szmigiero# Since: 8.2 1148259ebed4SMaciej S. Szmigiero## 1149259ebed4SMaciej S. Szmigiero{ 'struct': 'HvBalloonInfo', 1150259ebed4SMaciej S. Szmigiero 'data': { 'committed': 'size', 'available': 'size' } } 1151259ebed4SMaciej S. Szmigiero 1152259ebed4SMaciej S. Szmigiero## 1153259ebed4SMaciej S. Szmigiero# @query-hv-balloon-status-report: 1154259ebed4SMaciej S. Szmigiero# 1155259ebed4SMaciej S. Szmigiero# Returns the hv-balloon driver data contained in the last received "STATUS" 1156259ebed4SMaciej S. Szmigiero# message from the guest. 1157259ebed4SMaciej S. Szmigiero# 1158259ebed4SMaciej S. Szmigiero# Returns: 1159e2c1dcbcSMarkus Armbruster# @HvBalloonInfo 11602746f060SMarkus Armbruster# 11612746f060SMarkus Armbruster# Errors: 1162e6ab40feSMarkus Armbruster# - If no hv-balloon device is present, guest memory status 1163e6ab40feSMarkus Armbruster# reporting is not enabled or no guest memory status report 1164e6ab40feSMarkus Armbruster# received yet, GenericError 1165259ebed4SMaciej S. Szmigiero# 1166259ebed4SMaciej S. Szmigiero# Since: 8.2 1167259ebed4SMaciej S. Szmigiero# 1168259ebed4SMaciej S. Szmigiero# Example: 1169259ebed4SMaciej S. Szmigiero# 1170259ebed4SMaciej S. Szmigiero# -> { "execute": "query-hv-balloon-status-report" } 1171259ebed4SMaciej S. Szmigiero# <- { "return": { 1172259ebed4SMaciej S. Szmigiero# "committed": 816640000, 1173259ebed4SMaciej S. Szmigiero# "available": 3333054464 1174259ebed4SMaciej S. Szmigiero# } 1175259ebed4SMaciej S. Szmigiero# } 1176259ebed4SMaciej S. Szmigiero## 1177259ebed4SMaciej S. Szmigiero{ 'command': 'query-hv-balloon-status-report', 'returns': 'HvBalloonInfo' } 1178259ebed4SMaciej S. Szmigiero 1179259ebed4SMaciej S. Szmigiero## 1180259ebed4SMaciej S. Szmigiero# @HV_BALLOON_STATUS_REPORT: 1181259ebed4SMaciej S. Szmigiero# 1182259ebed4SMaciej S. Szmigiero# Emitted when the hv-balloon driver receives a "STATUS" message from 1183259ebed4SMaciej S. Szmigiero# the guest. 1184259ebed4SMaciej S. Szmigiero# 1185259ebed4SMaciej S. Szmigiero# Note: this event is rate-limited. 1186259ebed4SMaciej S. Szmigiero# 1187259ebed4SMaciej S. Szmigiero# Since: 8.2 1188259ebed4SMaciej S. Szmigiero# 1189259ebed4SMaciej S. Szmigiero# Example: 1190259ebed4SMaciej S. Szmigiero# 1191259ebed4SMaciej S. Szmigiero# <- { "event": "HV_BALLOON_STATUS_REPORT", 1192259ebed4SMaciej S. Szmigiero# "data": { "committed": 816640000, "available": 3333054464 }, 1193259ebed4SMaciej S. Szmigiero# "timestamp": { "seconds": 1600295492, "microseconds": 661044 } } 1194259ebed4SMaciej S. Szmigiero# 1195259ebed4SMaciej S. Szmigiero## 1196259ebed4SMaciej S. Szmigiero{ 'event': 'HV_BALLOON_STATUS_REPORT', 1197259ebed4SMaciej S. Szmigiero 'data': 'HvBalloonInfo' } 1198259ebed4SMaciej S. Szmigiero 1199259ebed4SMaciej S. Szmigiero## 1200b495ec6cSPhilippe Mathieu-Daudé# @MemoryInfo: 1201b495ec6cSPhilippe Mathieu-Daudé# 1202b495ec6cSPhilippe Mathieu-Daudé# Actual memory information in bytes. 1203b495ec6cSPhilippe Mathieu-Daudé# 1204b495ec6cSPhilippe Mathieu-Daudé# @base-memory: size of "base" memory specified with command line 1205b495ec6cSPhilippe Mathieu-Daudé# option -m. 1206b495ec6cSPhilippe Mathieu-Daudé# 1207a937b6aaSMarkus Armbruster# @plugged-memory: size of memory that can be hot-unplugged. This 1208a937b6aaSMarkus Armbruster# field is omitted if target doesn't support memory hotplug (i.e. 1209a937b6aaSMarkus Armbruster# CONFIG_MEM_DEVICE not defined at build time). 1210b495ec6cSPhilippe Mathieu-Daudé# 12119bc6e893SMarkus Armbruster# Since: 2.11 1212b495ec6cSPhilippe Mathieu-Daudé## 1213b495ec6cSPhilippe Mathieu-Daudé{ 'struct': 'MemoryInfo', 1214b495ec6cSPhilippe Mathieu-Daudé 'data' : { 'base-memory': 'size', '*plugged-memory': 'size' } } 1215b495ec6cSPhilippe Mathieu-Daudé 1216b495ec6cSPhilippe Mathieu-Daudé## 1217b495ec6cSPhilippe Mathieu-Daudé# @query-memory-size-summary: 1218b495ec6cSPhilippe Mathieu-Daudé# 1219a937b6aaSMarkus Armbruster# Return the amount of initially allocated and present hotpluggable 1220a937b6aaSMarkus Armbruster# (if enabled) memory in bytes. 1221b495ec6cSPhilippe Mathieu-Daudé# 1222b495ec6cSPhilippe Mathieu-Daudé# Example: 1223b495ec6cSPhilippe Mathieu-Daudé# 1224b495ec6cSPhilippe Mathieu-Daudé# -> { "execute": "query-memory-size-summary" } 1225b495ec6cSPhilippe Mathieu-Daudé# <- { "return": { "base-memory": 4294967296, "plugged-memory": 0 } } 1226b495ec6cSPhilippe Mathieu-Daudé# 12279bc6e893SMarkus Armbruster# Since: 2.11 1228b495ec6cSPhilippe Mathieu-Daudé## 1229b495ec6cSPhilippe Mathieu-Daudé{ 'command': 'query-memory-size-summary', 'returns': 'MemoryInfo' } 1230b495ec6cSPhilippe Mathieu-Daudé 1231b495ec6cSPhilippe Mathieu-Daudé## 1232b495ec6cSPhilippe Mathieu-Daudé# @PCDIMMDeviceInfo: 1233b495ec6cSPhilippe Mathieu-Daudé# 1234b495ec6cSPhilippe Mathieu-Daudé# PCDIMMDevice state information 1235b495ec6cSPhilippe Mathieu-Daudé# 1236b495ec6cSPhilippe Mathieu-Daudé# @id: device's ID 1237b495ec6cSPhilippe Mathieu-Daudé# 1238b495ec6cSPhilippe Mathieu-Daudé# @addr: physical address, where device is mapped 1239b495ec6cSPhilippe Mathieu-Daudé# 1240b495ec6cSPhilippe Mathieu-Daudé# @size: size of memory that the device provides 1241b495ec6cSPhilippe Mathieu-Daudé# 1242b495ec6cSPhilippe Mathieu-Daudé# @slot: slot number at which device is plugged in 1243b495ec6cSPhilippe Mathieu-Daudé# 1244b495ec6cSPhilippe Mathieu-Daudé# @node: NUMA node number where device is plugged in 1245b495ec6cSPhilippe Mathieu-Daudé# 1246b495ec6cSPhilippe Mathieu-Daudé# @memdev: memory backend linked with device 1247b495ec6cSPhilippe Mathieu-Daudé# 1248b495ec6cSPhilippe Mathieu-Daudé# @hotplugged: true if device was hotplugged 1249b495ec6cSPhilippe Mathieu-Daudé# 1250a937b6aaSMarkus Armbruster# @hotpluggable: true if device if could be added/removed while 1251a937b6aaSMarkus Armbruster# machine is running 1252b495ec6cSPhilippe Mathieu-Daudé# 1253b495ec6cSPhilippe Mathieu-Daudé# Since: 2.1 1254b495ec6cSPhilippe Mathieu-Daudé## 1255b495ec6cSPhilippe Mathieu-Daudé{ 'struct': 'PCDIMMDeviceInfo', 1256b495ec6cSPhilippe Mathieu-Daudé 'data': { '*id': 'str', 1257b495ec6cSPhilippe Mathieu-Daudé 'addr': 'int', 1258b495ec6cSPhilippe Mathieu-Daudé 'size': 'int', 1259b495ec6cSPhilippe Mathieu-Daudé 'slot': 'int', 1260b495ec6cSPhilippe Mathieu-Daudé 'node': 'int', 1261b495ec6cSPhilippe Mathieu-Daudé 'memdev': 'str', 1262b495ec6cSPhilippe Mathieu-Daudé 'hotplugged': 'bool', 1263b495ec6cSPhilippe Mathieu-Daudé 'hotpluggable': 'bool' 1264b495ec6cSPhilippe Mathieu-Daudé } 1265b495ec6cSPhilippe Mathieu-Daudé} 1266b495ec6cSPhilippe Mathieu-Daudé 1267b495ec6cSPhilippe Mathieu-Daudé## 1268b495ec6cSPhilippe Mathieu-Daudé# @VirtioPMEMDeviceInfo: 1269b495ec6cSPhilippe Mathieu-Daudé# 1270b495ec6cSPhilippe Mathieu-Daudé# VirtioPMEM state information 1271b495ec6cSPhilippe Mathieu-Daudé# 1272b495ec6cSPhilippe Mathieu-Daudé# @id: device's ID 1273b495ec6cSPhilippe Mathieu-Daudé# 1274b495ec6cSPhilippe Mathieu-Daudé# @memaddr: physical address in memory, where device is mapped 1275b495ec6cSPhilippe Mathieu-Daudé# 1276b495ec6cSPhilippe Mathieu-Daudé# @size: size of memory that the device provides 1277b495ec6cSPhilippe Mathieu-Daudé# 1278b495ec6cSPhilippe Mathieu-Daudé# @memdev: memory backend linked with device 1279b495ec6cSPhilippe Mathieu-Daudé# 1280b495ec6cSPhilippe Mathieu-Daudé# Since: 4.1 1281b495ec6cSPhilippe Mathieu-Daudé## 1282b495ec6cSPhilippe Mathieu-Daudé{ 'struct': 'VirtioPMEMDeviceInfo', 1283b495ec6cSPhilippe Mathieu-Daudé 'data': { '*id': 'str', 1284b495ec6cSPhilippe Mathieu-Daudé 'memaddr': 'size', 1285b495ec6cSPhilippe Mathieu-Daudé 'size': 'size', 1286b495ec6cSPhilippe Mathieu-Daudé 'memdev': 'str' 1287b495ec6cSPhilippe Mathieu-Daudé } 1288b495ec6cSPhilippe Mathieu-Daudé} 1289b495ec6cSPhilippe Mathieu-Daudé 1290b495ec6cSPhilippe Mathieu-Daudé## 1291b495ec6cSPhilippe Mathieu-Daudé# @VirtioMEMDeviceInfo: 1292b495ec6cSPhilippe Mathieu-Daudé# 1293b495ec6cSPhilippe Mathieu-Daudé# VirtioMEMDevice state information 1294b495ec6cSPhilippe Mathieu-Daudé# 1295b495ec6cSPhilippe Mathieu-Daudé# @id: device's ID 1296b495ec6cSPhilippe Mathieu-Daudé# 1297b495ec6cSPhilippe Mathieu-Daudé# @memaddr: physical address in memory, where device is mapped 1298b495ec6cSPhilippe Mathieu-Daudé# 1299b495ec6cSPhilippe Mathieu-Daudé# @requested-size: the user requested size of the device 1300b495ec6cSPhilippe Mathieu-Daudé# 1301b495ec6cSPhilippe Mathieu-Daudé# @size: the (current) size of memory that the device provides 1302b495ec6cSPhilippe Mathieu-Daudé# 1303b495ec6cSPhilippe Mathieu-Daudé# @max-size: the maximum size of memory that the device can provide 1304b495ec6cSPhilippe Mathieu-Daudé# 1305b495ec6cSPhilippe Mathieu-Daudé# @block-size: the block size of memory that the device provides 1306b495ec6cSPhilippe Mathieu-Daudé# 1307b495ec6cSPhilippe Mathieu-Daudé# @node: NUMA node number where device is assigned to 1308b495ec6cSPhilippe Mathieu-Daudé# 1309b495ec6cSPhilippe Mathieu-Daudé# @memdev: memory backend linked with the region 1310b495ec6cSPhilippe Mathieu-Daudé# 1311b495ec6cSPhilippe Mathieu-Daudé# Since: 5.1 1312b495ec6cSPhilippe Mathieu-Daudé## 1313b495ec6cSPhilippe Mathieu-Daudé{ 'struct': 'VirtioMEMDeviceInfo', 1314b495ec6cSPhilippe Mathieu-Daudé 'data': { '*id': 'str', 1315b495ec6cSPhilippe Mathieu-Daudé 'memaddr': 'size', 1316b495ec6cSPhilippe Mathieu-Daudé 'requested-size': 'size', 1317b495ec6cSPhilippe Mathieu-Daudé 'size': 'size', 1318b495ec6cSPhilippe Mathieu-Daudé 'max-size': 'size', 1319b495ec6cSPhilippe Mathieu-Daudé 'block-size': 'size', 1320b495ec6cSPhilippe Mathieu-Daudé 'node': 'int', 1321b495ec6cSPhilippe Mathieu-Daudé 'memdev': 'str' 1322b495ec6cSPhilippe Mathieu-Daudé } 1323b495ec6cSPhilippe Mathieu-Daudé} 1324b495ec6cSPhilippe Mathieu-Daudé 1325b495ec6cSPhilippe Mathieu-Daudé## 1326a7c565a9SYang Zhong# @SgxEPCDeviceInfo: 1327a7c565a9SYang Zhong# 1328a7c565a9SYang Zhong# Sgx EPC state information 1329a7c565a9SYang Zhong# 1330a7c565a9SYang Zhong# @id: device's ID 1331a7c565a9SYang Zhong# 1332a7c565a9SYang Zhong# @memaddr: physical address in memory, where device is mapped 1333a7c565a9SYang Zhong# 1334a7c565a9SYang Zhong# @size: size of memory that the device provides 1335a7c565a9SYang Zhong# 1336a7c565a9SYang Zhong# @memdev: memory backend linked with device 1337a7c565a9SYang Zhong# 1338a66bd91fSYang Zhong# @node: the numa node (Since: 7.0) 133911058123SYang Zhong# 1340a7c565a9SYang Zhong# Since: 6.2 1341a7c565a9SYang Zhong## 1342a7c565a9SYang Zhong{ 'struct': 'SgxEPCDeviceInfo', 1343a7c565a9SYang Zhong 'data': { '*id': 'str', 1344a7c565a9SYang Zhong 'memaddr': 'size', 1345a7c565a9SYang Zhong 'size': 'size', 134611058123SYang Zhong 'node': 'int', 1347a7c565a9SYang Zhong 'memdev': 'str' 1348a7c565a9SYang Zhong } 1349a7c565a9SYang Zhong} 1350a7c565a9SYang Zhong 1351a7c565a9SYang Zhong## 135216dff2f9SMaciej S. Szmigiero# @HvBalloonDeviceInfo: 135316dff2f9SMaciej S. Szmigiero# 135416dff2f9SMaciej S. Szmigiero# hv-balloon provided memory state information 135516dff2f9SMaciej S. Szmigiero# 135616dff2f9SMaciej S. Szmigiero# @id: device's ID 135716dff2f9SMaciej S. Szmigiero# 135816dff2f9SMaciej S. Szmigiero# @memaddr: physical address in memory, where device is mapped 135916dff2f9SMaciej S. Szmigiero# 136016dff2f9SMaciej S. Szmigiero# @max-size: the maximum size of memory that the device can provide 136116dff2f9SMaciej S. Szmigiero# 136216dff2f9SMaciej S. Szmigiero# @memdev: memory backend linked with device 136316dff2f9SMaciej S. Szmigiero# 136416dff2f9SMaciej S. Szmigiero# Since: 8.2 136516dff2f9SMaciej S. Szmigiero## 136616dff2f9SMaciej S. Szmigiero{ 'struct': 'HvBalloonDeviceInfo', 136716dff2f9SMaciej S. Szmigiero 'data': { '*id': 'str', 136816dff2f9SMaciej S. Szmigiero '*memaddr': 'size', 136916dff2f9SMaciej S. Szmigiero 'max-size': 'size', 137016dff2f9SMaciej S. Szmigiero '*memdev': 'str' 137116dff2f9SMaciej S. Szmigiero } 137216dff2f9SMaciej S. Szmigiero} 137316dff2f9SMaciej S. Szmigiero 137416dff2f9SMaciej S. Szmigiero## 1375db6a252bSMarkus Armbruster# @MemoryDeviceInfoKind: 1376db6a252bSMarkus Armbruster# 137786bf13aeSMarkus Armbruster# @nvdimm: since 2.12 137886bf13aeSMarkus Armbruster# 137986bf13aeSMarkus Armbruster# @virtio-pmem: since 4.1 138086bf13aeSMarkus Armbruster# 138186bf13aeSMarkus Armbruster# @virtio-mem: since 5.1 138286bf13aeSMarkus Armbruster# 138386bf13aeSMarkus Armbruster# @sgx-epc: since 6.2. 138486bf13aeSMarkus Armbruster# 138516dff2f9SMaciej S. Szmigiero# @hv-balloon: since 8.2. 138616dff2f9SMaciej S. Szmigiero# 1387db6a252bSMarkus Armbruster# Since: 2.1 1388db6a252bSMarkus Armbruster## 1389db6a252bSMarkus Armbruster{ 'enum': 'MemoryDeviceInfoKind', 139016dff2f9SMaciej S. Szmigiero 'data': [ 'dimm', 'nvdimm', 'virtio-pmem', 'virtio-mem', 'sgx-epc', 139116dff2f9SMaciej S. Szmigiero 'hv-balloon' ] } 1392db6a252bSMarkus Armbruster 1393db6a252bSMarkus Armbruster## 1394db6a252bSMarkus Armbruster# @PCDIMMDeviceInfoWrapper: 1395db6a252bSMarkus Armbruster# 13962fecccbcSMarkus Armbruster# @data: PCDIMMDevice state information 13972fecccbcSMarkus Armbruster# 1398db6a252bSMarkus Armbruster# Since: 2.1 1399db6a252bSMarkus Armbruster## 1400db6a252bSMarkus Armbruster{ 'struct': 'PCDIMMDeviceInfoWrapper', 1401db6a252bSMarkus Armbruster 'data': { 'data': 'PCDIMMDeviceInfo' } } 1402db6a252bSMarkus Armbruster 1403db6a252bSMarkus Armbruster## 1404db6a252bSMarkus Armbruster# @VirtioPMEMDeviceInfoWrapper: 1405db6a252bSMarkus Armbruster# 14062fecccbcSMarkus Armbruster# @data: VirtioPMEM state information 14072fecccbcSMarkus Armbruster# 1408db6a252bSMarkus Armbruster# Since: 2.1 1409db6a252bSMarkus Armbruster## 1410db6a252bSMarkus Armbruster{ 'struct': 'VirtioPMEMDeviceInfoWrapper', 1411db6a252bSMarkus Armbruster 'data': { 'data': 'VirtioPMEMDeviceInfo' } } 1412db6a252bSMarkus Armbruster 1413db6a252bSMarkus Armbruster## 1414db6a252bSMarkus Armbruster# @VirtioMEMDeviceInfoWrapper: 1415db6a252bSMarkus Armbruster# 14162fecccbcSMarkus Armbruster# @data: VirtioMEMDevice state information 14172fecccbcSMarkus Armbruster# 1418db6a252bSMarkus Armbruster# Since: 2.1 1419db6a252bSMarkus Armbruster## 1420db6a252bSMarkus Armbruster{ 'struct': 'VirtioMEMDeviceInfoWrapper', 1421db6a252bSMarkus Armbruster 'data': { 'data': 'VirtioMEMDeviceInfo' } } 1422db6a252bSMarkus Armbruster 1423db6a252bSMarkus Armbruster## 1424a7c565a9SYang Zhong# @SgxEPCDeviceInfoWrapper: 1425a7c565a9SYang Zhong# 14262fecccbcSMarkus Armbruster# @data: Sgx EPC state information 14272fecccbcSMarkus Armbruster# 1428a7c565a9SYang Zhong# Since: 6.2 1429a7c565a9SYang Zhong## 1430a7c565a9SYang Zhong{ 'struct': 'SgxEPCDeviceInfoWrapper', 1431a7c565a9SYang Zhong 'data': { 'data': 'SgxEPCDeviceInfo' } } 1432a7c565a9SYang Zhong 1433b495ec6cSPhilippe Mathieu-Daudé## 143416dff2f9SMaciej S. Szmigiero# @HvBalloonDeviceInfoWrapper: 143516dff2f9SMaciej S. Szmigiero# 14362fecccbcSMarkus Armbruster# @data: hv-balloon provided memory state information 14372fecccbcSMarkus Armbruster# 143816dff2f9SMaciej S. Szmigiero# Since: 8.2 143916dff2f9SMaciej S. Szmigiero## 144016dff2f9SMaciej S. Szmigiero{ 'struct': 'HvBalloonDeviceInfoWrapper', 144116dff2f9SMaciej S. Szmigiero 'data': { 'data': 'HvBalloonDeviceInfo' } } 144216dff2f9SMaciej S. Szmigiero 144316dff2f9SMaciej S. Szmigiero## 1444b495ec6cSPhilippe Mathieu-Daudé# @MemoryDeviceInfo: 1445b495ec6cSPhilippe Mathieu-Daudé# 1446b495ec6cSPhilippe Mathieu-Daudé# Union containing information about a memory device 1447b495ec6cSPhilippe Mathieu-Daudé# 144889a2273bSMarkus Armbruster# @type: memory device type 144989a2273bSMarkus Armbruster# 1450b495ec6cSPhilippe Mathieu-Daudé# Since: 2.1 1451b495ec6cSPhilippe Mathieu-Daudé## 1452b495ec6cSPhilippe Mathieu-Daudé{ 'union': 'MemoryDeviceInfo', 1453db6a252bSMarkus Armbruster 'base': { 'type': 'MemoryDeviceInfoKind' }, 1454db6a252bSMarkus Armbruster 'discriminator': 'type', 1455db6a252bSMarkus Armbruster 'data': { 'dimm': 'PCDIMMDeviceInfoWrapper', 1456db6a252bSMarkus Armbruster 'nvdimm': 'PCDIMMDeviceInfoWrapper', 1457db6a252bSMarkus Armbruster 'virtio-pmem': 'VirtioPMEMDeviceInfoWrapper', 1458a7c565a9SYang Zhong 'virtio-mem': 'VirtioMEMDeviceInfoWrapper', 145916dff2f9SMaciej S. Szmigiero 'sgx-epc': 'SgxEPCDeviceInfoWrapper', 146016dff2f9SMaciej S. Szmigiero 'hv-balloon': 'HvBalloonDeviceInfoWrapper' 1461b495ec6cSPhilippe Mathieu-Daudé } 1462b495ec6cSPhilippe Mathieu-Daudé} 1463b495ec6cSPhilippe Mathieu-Daudé 1464b495ec6cSPhilippe Mathieu-Daudé## 1465dfce81f1SSean Christopherson# @SgxEPC: 1466dfce81f1SSean Christopherson# 1467dfce81f1SSean Christopherson# Sgx EPC cmdline information 1468dfce81f1SSean Christopherson# 1469dfce81f1SSean Christopherson# @memdev: memory backend linked with device 1470dfce81f1SSean Christopherson# 1471a66bd91fSYang Zhong# @node: the numa node (Since: 7.0) 147211058123SYang Zhong# 1473dfce81f1SSean Christopherson# Since: 6.2 1474dfce81f1SSean Christopherson## 1475dfce81f1SSean Christopherson{ 'struct': 'SgxEPC', 147611058123SYang Zhong 'data': { 'memdev': 'str', 147711058123SYang Zhong 'node': 'int' 147811058123SYang Zhong } 147911058123SYang Zhong} 1480dfce81f1SSean Christopherson 1481dfce81f1SSean Christopherson## 1482dfce81f1SSean Christopherson# @SgxEPCProperties: 1483dfce81f1SSean Christopherson# 1484dfce81f1SSean Christopherson# SGX properties of machine types. 1485dfce81f1SSean Christopherson# 1486dfce81f1SSean Christopherson# @sgx-epc: list of ids of memory-backend-epc objects. 1487dfce81f1SSean Christopherson# 1488dfce81f1SSean Christopherson# Since: 6.2 1489dfce81f1SSean Christopherson## 1490dfce81f1SSean Christopherson{ 'struct': 'SgxEPCProperties', 1491dfce81f1SSean Christopherson 'data': { 'sgx-epc': ['SgxEPC'] } 1492dfce81f1SSean Christopherson} 1493dfce81f1SSean Christopherson 1494dfce81f1SSean Christopherson## 1495b495ec6cSPhilippe Mathieu-Daudé# @query-memory-devices: 1496b495ec6cSPhilippe Mathieu-Daudé# 1497b495ec6cSPhilippe Mathieu-Daudé# Lists available memory devices and their state 1498b495ec6cSPhilippe Mathieu-Daudé# 1499b495ec6cSPhilippe Mathieu-Daudé# Since: 2.1 1500b495ec6cSPhilippe Mathieu-Daudé# 1501b495ec6cSPhilippe Mathieu-Daudé# Example: 1502b495ec6cSPhilippe Mathieu-Daudé# 1503b495ec6cSPhilippe Mathieu-Daudé# -> { "execute": "query-memory-devices" } 1504b495ec6cSPhilippe Mathieu-Daudé# <- { "return": [ { "data": 1505b495ec6cSPhilippe Mathieu-Daudé# { "addr": 5368709120, 1506b495ec6cSPhilippe Mathieu-Daudé# "hotpluggable": true, 1507b495ec6cSPhilippe Mathieu-Daudé# "hotplugged": true, 1508b495ec6cSPhilippe Mathieu-Daudé# "id": "d1", 1509b495ec6cSPhilippe Mathieu-Daudé# "memdev": "/objects/memX", 1510b495ec6cSPhilippe Mathieu-Daudé# "node": 0, 1511b495ec6cSPhilippe Mathieu-Daudé# "size": 1073741824, 1512b495ec6cSPhilippe Mathieu-Daudé# "slot": 0}, 1513b495ec6cSPhilippe Mathieu-Daudé# "type": "dimm" 1514b495ec6cSPhilippe Mathieu-Daudé# } ] } 1515b495ec6cSPhilippe Mathieu-Daudé## 1516b495ec6cSPhilippe Mathieu-Daudé{ 'command': 'query-memory-devices', 'returns': ['MemoryDeviceInfo'] } 1517b495ec6cSPhilippe Mathieu-Daudé 1518b495ec6cSPhilippe Mathieu-Daudé## 1519b495ec6cSPhilippe Mathieu-Daudé# @MEMORY_DEVICE_SIZE_CHANGE: 1520b495ec6cSPhilippe Mathieu-Daudé# 1521a937b6aaSMarkus Armbruster# Emitted when the size of a memory device changes. Only emitted for 1522a937b6aaSMarkus Armbruster# memory devices that can actually change the size (e.g., virtio-mem 1523a937b6aaSMarkus Armbruster# due to guest action). 1524b495ec6cSPhilippe Mathieu-Daudé# 1525b495ec6cSPhilippe Mathieu-Daudé# @id: device's ID 1526d89dd28fSDavid Hildenbrand# 1527b495ec6cSPhilippe Mathieu-Daudé# @size: the new size of memory that the device provides 1528b495ec6cSPhilippe Mathieu-Daudé# 1529d89dd28fSDavid Hildenbrand# @qom-path: path to the device object in the QOM tree (since 6.2) 1530d89dd28fSDavid Hildenbrand# 1531b495ec6cSPhilippe Mathieu-Daudé# Note: this event is rate-limited. 1532b495ec6cSPhilippe Mathieu-Daudé# 1533b495ec6cSPhilippe Mathieu-Daudé# Since: 5.1 1534b495ec6cSPhilippe Mathieu-Daudé# 1535b495ec6cSPhilippe Mathieu-Daudé# Example: 1536b495ec6cSPhilippe Mathieu-Daudé# 1537b495ec6cSPhilippe Mathieu-Daudé# <- { "event": "MEMORY_DEVICE_SIZE_CHANGE", 1538dba673b9SVictor Toso# "data": { "id": "vm0", "size": 1073741824, 1539dba673b9SVictor Toso# "qom-path": "/machine/unattached/device[2]" }, 1540b495ec6cSPhilippe Mathieu-Daudé# "timestamp": { "seconds": 1588168529, "microseconds": 201316 } } 1541b495ec6cSPhilippe Mathieu-Daudé## 1542b495ec6cSPhilippe Mathieu-Daudé{ 'event': 'MEMORY_DEVICE_SIZE_CHANGE', 1543d89dd28fSDavid Hildenbrand 'data': { '*id': 'str', 'size': 'size', 'qom-path' : 'str'} } 1544b495ec6cSPhilippe Mathieu-Daudé 1545b495ec6cSPhilippe Mathieu-Daudé## 1546b495ec6cSPhilippe Mathieu-Daudé# @MEM_UNPLUG_ERROR: 1547b495ec6cSPhilippe Mathieu-Daudé# 1548b495ec6cSPhilippe Mathieu-Daudé# Emitted when memory hot unplug error occurs. 1549b495ec6cSPhilippe Mathieu-Daudé# 1550b495ec6cSPhilippe Mathieu-Daudé# @device: device name 1551b495ec6cSPhilippe Mathieu-Daudé# 1552b495ec6cSPhilippe Mathieu-Daudé# @msg: Informative message 1553b495ec6cSPhilippe Mathieu-Daudé# 1554d43f1670SDaniel Henrique Barboza# Features: 1555a937b6aaSMarkus Armbruster# 1556a937b6aaSMarkus Armbruster# @deprecated: This event is deprecated. Use 1557a937b6aaSMarkus Armbruster# @DEVICE_UNPLUG_GUEST_ERROR instead. 1558d43f1670SDaniel Henrique Barboza# 1559b495ec6cSPhilippe Mathieu-Daudé# Since: 2.4 1560b495ec6cSPhilippe Mathieu-Daudé# 1561b495ec6cSPhilippe Mathieu-Daudé# Example: 1562b495ec6cSPhilippe Mathieu-Daudé# 1563e8796ac4SVictor Toso# <- { "event": "MEM_UNPLUG_ERROR", 1564b495ec6cSPhilippe Mathieu-Daudé# "data": { "device": "dimm1", 1565b495ec6cSPhilippe Mathieu-Daudé# "msg": "acpi: device unplug for unsupported device" 1566b495ec6cSPhilippe Mathieu-Daudé# }, 1567b495ec6cSPhilippe Mathieu-Daudé# "timestamp": { "seconds": 1265044230, "microseconds": 450486 } } 1568b495ec6cSPhilippe Mathieu-Daudé## 1569b495ec6cSPhilippe Mathieu-Daudé{ 'event': 'MEM_UNPLUG_ERROR', 1570d43f1670SDaniel Henrique Barboza 'data': { 'device': 'str', 'msg': 'str' }, 1571d43f1670SDaniel Henrique Barboza 'features': ['deprecated'] } 15721e63fe68SPaolo Bonzini 15731e63fe68SPaolo Bonzini## 157497ec4d21SPaolo Bonzini# @BootConfiguration: 157597ec4d21SPaolo Bonzini# 157697ec4d21SPaolo Bonzini# Schema for virtual machine boot configuration. 157797ec4d21SPaolo Bonzini# 157897ec4d21SPaolo Bonzini# @order: Boot order (a=floppy, c=hard disk, d=CD-ROM, n=network) 157997ec4d21SPaolo Bonzini# 158097ec4d21SPaolo Bonzini# @once: Boot order to apply on first boot 158197ec4d21SPaolo Bonzini# 158297ec4d21SPaolo Bonzini# @menu: Whether to show a boot menu 158397ec4d21SPaolo Bonzini# 1584a937b6aaSMarkus Armbruster# @splash: The name of the file to be passed to the firmware as logo 1585a937b6aaSMarkus Armbruster# picture, if @menu is true. 158697ec4d21SPaolo Bonzini# 158797ec4d21SPaolo Bonzini# @splash-time: How long to show the logo picture, in milliseconds 158897ec4d21SPaolo Bonzini# 158997ec4d21SPaolo Bonzini# @reboot-timeout: Timeout before guest reboots after boot fails 159097ec4d21SPaolo Bonzini# 1591a937b6aaSMarkus Armbruster# @strict: Whether to attempt booting from devices not included in the 1592a937b6aaSMarkus Armbruster# boot order 159397ec4d21SPaolo Bonzini# 159497ec4d21SPaolo Bonzini# Since: 7.1 159597ec4d21SPaolo Bonzini## 159697ec4d21SPaolo Bonzini{ 'struct': 'BootConfiguration', 'data': { 159797ec4d21SPaolo Bonzini '*order': 'str', 159897ec4d21SPaolo Bonzini '*once': 'str', 159997ec4d21SPaolo Bonzini '*menu': 'bool', 160097ec4d21SPaolo Bonzini '*splash': 'str', 160197ec4d21SPaolo Bonzini '*splash-time': 'int', 160297ec4d21SPaolo Bonzini '*reboot-timeout': 'int', 160397ec4d21SPaolo Bonzini '*strict': 'bool' } } 160497ec4d21SPaolo Bonzini 160597ec4d21SPaolo Bonzini## 16061e63fe68SPaolo Bonzini# @SMPConfiguration: 16071e63fe68SPaolo Bonzini# 1608a937b6aaSMarkus Armbruster# Schema for CPU topology configuration. A missing value lets QEMU 1609a937b6aaSMarkus Armbruster# figure out a suitable value based on the ones that are provided. 16101e63fe68SPaolo Bonzini# 16113da4aef8SNina Schoetterl-Glausch# The members other than @cpus and @maxcpus define a topology of 16123da4aef8SNina Schoetterl-Glausch# containers. 16133da4aef8SNina Schoetterl-Glausch# 16143da4aef8SNina Schoetterl-Glausch# The ordering from highest/coarsest to lowest/finest is: 16155de1aff2SPierre Morel# @drawers, @books, @sockets, @dies, @clusters, @cores, @threads. 16163da4aef8SNina Schoetterl-Glausch# 16173da4aef8SNina Schoetterl-Glausch# Different architectures support different subsets of topology 16183da4aef8SNina Schoetterl-Glausch# containers. 16193da4aef8SNina Schoetterl-Glausch# 16203da4aef8SNina Schoetterl-Glausch# For example, s390x does not have clusters and dies, and the socket 16213da4aef8SNina Schoetterl-Glausch# is the parent container of cores. 16223da4aef8SNina Schoetterl-Glausch# 16231e63fe68SPaolo Bonzini# @cpus: number of virtual CPUs in the virtual machine 16241e63fe68SPaolo Bonzini# 1625a937b6aaSMarkus Armbruster# @maxcpus: maximum number of hotpluggable virtual CPUs in the virtual 1626a937b6aaSMarkus Armbruster# machine 16271e63fe68SPaolo Bonzini# 16285de1aff2SPierre Morel# @drawers: number of drawers in the CPU topology (since 8.2) 16295de1aff2SPierre Morel# 16305de1aff2SPierre Morel# @books: number of books in the CPU topology (since 8.2) 16315de1aff2SPierre Morel# 16325de1aff2SPierre Morel# @sockets: number of sockets per parent container 16333da4aef8SNina Schoetterl-Glausch# 16343da4aef8SNina Schoetterl-Glausch# @dies: number of dies per parent container 16353da4aef8SNina Schoetterl-Glausch# 16363da4aef8SNina Schoetterl-Glausch# @clusters: number of clusters per parent container (since 7.0) 16373da4aef8SNina Schoetterl-Glausch# 16383da4aef8SNina Schoetterl-Glausch# @cores: number of cores per parent container 16393da4aef8SNina Schoetterl-Glausch# 16403da4aef8SNina Schoetterl-Glausch# @threads: number of threads per core 16413da4aef8SNina Schoetterl-Glausch# 16421e63fe68SPaolo Bonzini# Since: 6.1 16431e63fe68SPaolo Bonzini## 16441e63fe68SPaolo Bonzini{ 'struct': 'SMPConfiguration', 'data': { 16451e63fe68SPaolo Bonzini '*cpus': 'int', 16465de1aff2SPierre Morel '*drawers': 'int', 16475de1aff2SPierre Morel '*books': 'int', 16481e63fe68SPaolo Bonzini '*sockets': 'int', 16491e63fe68SPaolo Bonzini '*dies': 'int', 1650864c3b5cSYanan Wang '*clusters': 'int', 16511e63fe68SPaolo Bonzini '*cores': 'int', 16521e63fe68SPaolo Bonzini '*threads': 'int', 16531e63fe68SPaolo Bonzini '*maxcpus': 'int' } } 1654dd98234cSDaniel P. Berrangé 1655dd98234cSDaniel P. Berrangé## 165691f2fa70SDaniel P. Berrangé# @x-query-irq: 165791f2fa70SDaniel P. Berrangé# 165891f2fa70SDaniel P. Berrangé# Query interrupt statistics 165991f2fa70SDaniel P. Berrangé# 16608c0bae5aSMarkus Armbruster# Features: 1661a937b6aaSMarkus Armbruster# 16628c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 16638c0bae5aSMarkus Armbruster# 166491f2fa70SDaniel P. Berrangé# Returns: interrupt statistics 166591f2fa70SDaniel P. Berrangé# 166691f2fa70SDaniel P. Berrangé# Since: 6.2 166791f2fa70SDaniel P. Berrangé## 166891f2fa70SDaniel P. Berrangé{ 'command': 'x-query-irq', 16698c0bae5aSMarkus Armbruster 'returns': 'HumanReadableText', 16708c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 167191f2fa70SDaniel P. Berrangé 167291f2fa70SDaniel P. Berrangé## 16733a841ab5SDaniel P. Berrangé# @x-query-jit: 16743a841ab5SDaniel P. Berrangé# 16753a841ab5SDaniel P. Berrangé# Query TCG compiler statistics 16763a841ab5SDaniel P. Berrangé# 16778c0bae5aSMarkus Armbruster# Features: 1678a937b6aaSMarkus Armbruster# 16798c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 16808c0bae5aSMarkus Armbruster# 16813a841ab5SDaniel P. Berrangé# Returns: TCG compiler statistics 16823a841ab5SDaniel P. Berrangé# 16833a841ab5SDaniel P. Berrangé# Since: 6.2 16843a841ab5SDaniel P. Berrangé## 16853a841ab5SDaniel P. Berrangé{ 'command': 'x-query-jit', 16863a841ab5SDaniel P. Berrangé 'returns': 'HumanReadableText', 16878c0bae5aSMarkus Armbruster 'if': 'CONFIG_TCG', 16888c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 16893a841ab5SDaniel P. Berrangé 16903a841ab5SDaniel P. Berrangé## 16911b8ae799SDaniel P. Berrangé# @x-query-numa: 16921b8ae799SDaniel P. Berrangé# 16931b8ae799SDaniel P. Berrangé# Query NUMA topology information 16941b8ae799SDaniel P. Berrangé# 16958c0bae5aSMarkus Armbruster# Features: 1696a937b6aaSMarkus Armbruster# 16978c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 16988c0bae5aSMarkus Armbruster# 16991b8ae799SDaniel P. Berrangé# Returns: topology information 17001b8ae799SDaniel P. Berrangé# 17011b8ae799SDaniel P. Berrangé# Since: 6.2 17021b8ae799SDaniel P. Berrangé## 17031b8ae799SDaniel P. Berrangé{ 'command': 'x-query-numa', 17048c0bae5aSMarkus Armbruster 'returns': 'HumanReadableText', 17058c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 17061b8ae799SDaniel P. Berrangé 17071b8ae799SDaniel P. Berrangé## 1708b6a7f3e0SDaniel P. Berrangé# @x-query-opcount: 1709b6a7f3e0SDaniel P. Berrangé# 1710b6a7f3e0SDaniel P. Berrangé# Query TCG opcode counters 1711b6a7f3e0SDaniel P. Berrangé# 17128c0bae5aSMarkus Armbruster# Features: 1713a937b6aaSMarkus Armbruster# 17148c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 17158c0bae5aSMarkus Armbruster# 1716b6a7f3e0SDaniel P. Berrangé# Returns: TCG opcode counters 1717b6a7f3e0SDaniel P. Berrangé# 1718b6a7f3e0SDaniel P. Berrangé# Since: 6.2 1719b6a7f3e0SDaniel P. Berrangé## 1720b6a7f3e0SDaniel P. Berrangé{ 'command': 'x-query-opcount', 1721b6a7f3e0SDaniel P. Berrangé 'returns': 'HumanReadableText', 17228c0bae5aSMarkus Armbruster 'if': 'CONFIG_TCG', 17238c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 1724b6a7f3e0SDaniel P. Berrangé 1725b6a7f3e0SDaniel P. Berrangé## 1726ca411b7cSDaniel P. Berrangé# @x-query-ramblock: 1727ca411b7cSDaniel P. Berrangé# 1728ca411b7cSDaniel P. Berrangé# Query system ramblock information 1729ca411b7cSDaniel P. Berrangé# 17308c0bae5aSMarkus Armbruster# Features: 1731a937b6aaSMarkus Armbruster# 17328c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 17338c0bae5aSMarkus Armbruster# 1734ca411b7cSDaniel P. Berrangé# Returns: system ramblock information 1735ca411b7cSDaniel P. Berrangé# 1736ca411b7cSDaniel P. Berrangé# Since: 6.2 1737ca411b7cSDaniel P. Berrangé## 1738ca411b7cSDaniel P. Berrangé{ 'command': 'x-query-ramblock', 17398c0bae5aSMarkus Armbruster 'returns': 'HumanReadableText', 17408c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 1741ca411b7cSDaniel P. Berrangé 1742ca411b7cSDaniel P. Berrangé## 17438dbbca5cSDaniel P. Berrangé# @x-query-rdma: 17448dbbca5cSDaniel P. Berrangé# 17458dbbca5cSDaniel P. Berrangé# Query RDMA state 17468dbbca5cSDaniel P. Berrangé# 17478c0bae5aSMarkus Armbruster# Features: 1748a937b6aaSMarkus Armbruster# 17498c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 17508c0bae5aSMarkus Armbruster# 17518dbbca5cSDaniel P. Berrangé# Returns: RDMA state 17528dbbca5cSDaniel P. Berrangé# 17538dbbca5cSDaniel P. Berrangé# Since: 6.2 17548dbbca5cSDaniel P. Berrangé## 17558dbbca5cSDaniel P. Berrangé{ 'command': 'x-query-rdma', 17568c0bae5aSMarkus Armbruster 'returns': 'HumanReadableText', 17578c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 17588dbbca5cSDaniel P. Berrangé 17598dbbca5cSDaniel P. Berrangé## 1760dd98234cSDaniel P. Berrangé# @x-query-roms: 1761dd98234cSDaniel P. Berrangé# 1762dd98234cSDaniel P. Berrangé# Query information on the registered ROMS 1763dd98234cSDaniel P. Berrangé# 17648c0bae5aSMarkus Armbruster# Features: 1765a937b6aaSMarkus Armbruster# 17668c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 17678c0bae5aSMarkus Armbruster# 1768dd98234cSDaniel P. Berrangé# Returns: registered ROMs 1769dd98234cSDaniel P. Berrangé# 1770dd98234cSDaniel P. Berrangé# Since: 6.2 1771dd98234cSDaniel P. Berrangé## 1772dd98234cSDaniel P. Berrangé{ 'command': 'x-query-roms', 17738c0bae5aSMarkus Armbruster 'returns': 'HumanReadableText', 17748c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 1775fc309207SDaniel P. Berrangé 1776fc309207SDaniel P. Berrangé## 1777fc309207SDaniel P. Berrangé# @x-query-usb: 1778fc309207SDaniel P. Berrangé# 1779fc309207SDaniel P. Berrangé# Query information on the USB devices 1780fc309207SDaniel P. Berrangé# 17818c0bae5aSMarkus Armbruster# Features: 1782a937b6aaSMarkus Armbruster# 17838c0bae5aSMarkus Armbruster# @unstable: This command is meant for debugging. 17848c0bae5aSMarkus Armbruster# 1785fc309207SDaniel P. Berrangé# Returns: USB device information 1786fc309207SDaniel P. Berrangé# 1787fc309207SDaniel P. Berrangé# Since: 6.2 1788fc309207SDaniel P. Berrangé## 1789fc309207SDaniel P. Berrangé{ 'command': 'x-query-usb', 17908c0bae5aSMarkus Armbruster 'returns': 'HumanReadableText', 17918c0bae5aSMarkus Armbruster 'features': [ 'unstable' ] } 1792bdf54a9aSEduardo Habkost 1793bdf54a9aSEduardo Habkost## 1794bdf54a9aSEduardo Habkost# @SmbiosEntryPointType: 1795bdf54a9aSEduardo Habkost# 1796bdf54a9aSEduardo Habkost# @32: SMBIOS version 2.1 (32-bit) Entry Point 1797bdf54a9aSEduardo Habkost# 1798bdf54a9aSEduardo Habkost# @64: SMBIOS version 3.0 (64-bit) Entry Point 1799bdf54a9aSEduardo Habkost# 1800*4901b80eSIgor Mammedov# @auto: Either 2.x or 3.x SMBIOS version, 2.x if configuration can be 1801*4901b80eSIgor Mammedov# described by it and 3.x otherwise (since: 9.0) 1802*4901b80eSIgor Mammedov# 1803bdf54a9aSEduardo Habkost# Since: 7.0 1804bdf54a9aSEduardo Habkost## 1805bdf54a9aSEduardo Habkost{ 'enum': 'SmbiosEntryPointType', 1806*4901b80eSIgor Mammedov 'data': [ '32', '64', 'auto' ] } 1807ce9d03fbSPaolo Bonzini 1808ce9d03fbSPaolo Bonzini## 1809ce9d03fbSPaolo Bonzini# @MemorySizeConfiguration: 1810ce9d03fbSPaolo Bonzini# 1811ce9d03fbSPaolo Bonzini# Schema for memory size configuration. 1812ce9d03fbSPaolo Bonzini# 1813ce9d03fbSPaolo Bonzini# @size: memory size in bytes 1814ce9d03fbSPaolo Bonzini# 1815ce9d03fbSPaolo Bonzini# @max-size: maximum hotpluggable memory size in bytes 1816ce9d03fbSPaolo Bonzini# 1817ce9d03fbSPaolo Bonzini# @slots: number of available memory slots for hotplug 1818ce9d03fbSPaolo Bonzini# 1819ce9d03fbSPaolo Bonzini# Since: 7.1 1820ce9d03fbSPaolo Bonzini## 1821ce9d03fbSPaolo Bonzini{ 'struct': 'MemorySizeConfiguration', 'data': { 1822ce9d03fbSPaolo Bonzini '*size': 'size', 1823ce9d03fbSPaolo Bonzini '*max-size': 'size', 1824ce9d03fbSPaolo Bonzini '*slots': 'uint64' } } 1825bf353ad5SDaniel Henrique Barboza 1826bf353ad5SDaniel Henrique Barboza## 1827bf353ad5SDaniel Henrique Barboza# @dumpdtb: 1828bf353ad5SDaniel Henrique Barboza# 1829bf353ad5SDaniel Henrique Barboza# Save the FDT in dtb format. 1830bf353ad5SDaniel Henrique Barboza# 1831bf353ad5SDaniel Henrique Barboza# @filename: name of the dtb file to be created 1832bf353ad5SDaniel Henrique Barboza# 1833bf353ad5SDaniel Henrique Barboza# Since: 7.2 1834bf353ad5SDaniel Henrique Barboza# 1835bf353ad5SDaniel Henrique Barboza# Example: 1836a937b6aaSMarkus Armbruster# 183737fa48a4SMarkus Armbruster# -> { "execute": "dumpdtb" } 1838bf353ad5SDaniel Henrique Barboza# "arguments": { "filename": "fdt.dtb" } } 183937fa48a4SMarkus Armbruster# <- { "return": {} } 1840bf353ad5SDaniel Henrique Barboza## 1841bf353ad5SDaniel Henrique Barboza{ 'command': 'dumpdtb', 1842bf353ad5SDaniel Henrique Barboza 'data': { 'filename': 'str' }, 1843bf353ad5SDaniel Henrique Barboza 'if': 'CONFIG_FDT' } 1844