This removes the TARGET_* conditions from all the CPU commands that are conceptually target independent. Top level stubs are provided to cope with targets which do not currently implement all of the commands. Adjust the doc comments accordingly. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Message-ID: <20250522190542.588267-10-pierrick.bouvier@linaro.org> Reviewed-by: Markus Armbruster <armbru@redhat.com>
125 lines
2.9 KiB
Python
125 lines
2.9 KiB
Python
# -*- Mode: Python -*-
|
|
# vim: filetype=python
|
|
#
|
|
# This work is licensed under the terms of the GNU GPL, version 2 or later.
|
|
# See the COPYING file in the top-level directory.
|
|
|
|
{ 'include': 'machine-common.json' }
|
|
|
|
##
|
|
# @S390CpuPolarization:
|
|
#
|
|
# An enumeration of CPU polarization that can be assumed by a virtual
|
|
# S390 CPU
|
|
#
|
|
# Since: 8.2
|
|
##
|
|
{ 'enum': 'S390CpuPolarization',
|
|
'data': [ 'horizontal', 'vertical' ],
|
|
'if': 'TARGET_S390X'
|
|
}
|
|
|
|
##
|
|
# @set-cpu-topology:
|
|
#
|
|
# Modify the topology by moving the CPU inside the topology tree, or
|
|
# by changing a modifier attribute of a CPU. Absent values will not
|
|
# be modified.
|
|
#
|
|
# @core-id: the vCPU ID to be moved
|
|
#
|
|
# @socket-id: destination socket to move the vCPU to
|
|
#
|
|
# @book-id: destination book to move the vCPU to
|
|
#
|
|
# @drawer-id: destination drawer to move the vCPU to
|
|
#
|
|
# @entitlement: entitlement to set
|
|
#
|
|
# @dedicated: whether the provisioning of real to virtual CPU is
|
|
# dedicated
|
|
#
|
|
# Features:
|
|
#
|
|
# @unstable: This command is experimental.
|
|
#
|
|
# Since: 8.2
|
|
##
|
|
{ 'command': 'set-cpu-topology',
|
|
'data': {
|
|
'core-id': 'uint16',
|
|
'*socket-id': 'uint16',
|
|
'*book-id': 'uint16',
|
|
'*drawer-id': 'uint16',
|
|
'*entitlement': 'S390CpuEntitlement',
|
|
'*dedicated': 'bool'
|
|
},
|
|
'features': [ 'unstable' ],
|
|
'if': { 'all': [ 'TARGET_S390X' , 'CONFIG_KVM' ] }
|
|
}
|
|
|
|
##
|
|
# @CPU_POLARIZATION_CHANGE:
|
|
#
|
|
# Emitted when the guest asks to change the polarization.
|
|
#
|
|
# The guest can tell the host (via the PTF instruction) whether the
|
|
# CPUs should be provisioned using horizontal or vertical
|
|
# polarization.
|
|
#
|
|
# On horizontal polarization the host is expected to provision all
|
|
# vCPUs equally.
|
|
#
|
|
# On vertical polarization the host can provision each vCPU
|
|
# differently. The guest will get information on the details of the
|
|
# provisioning the next time it uses the STSI(15) instruction.
|
|
#
|
|
# @polarization: polarization specified by the guest
|
|
#
|
|
# Features:
|
|
#
|
|
# @unstable: This event is experimental.
|
|
#
|
|
# Since: 8.2
|
|
#
|
|
# .. qmp-example::
|
|
#
|
|
# <- { "event": "CPU_POLARIZATION_CHANGE",
|
|
# "data": { "polarization": "horizontal" },
|
|
# "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
|
|
##
|
|
{ 'event': 'CPU_POLARIZATION_CHANGE',
|
|
'data': { 'polarization': 'S390CpuPolarization' },
|
|
'features': [ 'unstable' ],
|
|
'if': { 'all': [ 'TARGET_S390X', 'CONFIG_KVM' ] }
|
|
}
|
|
|
|
##
|
|
# @CpuPolarizationInfo:
|
|
#
|
|
# The result of a CPU polarization query.
|
|
#
|
|
# @polarization: the CPU polarization
|
|
#
|
|
# Since: 8.2
|
|
##
|
|
{ 'struct': 'CpuPolarizationInfo',
|
|
'data': { 'polarization': 'S390CpuPolarization' },
|
|
'if': { 'all': [ 'TARGET_S390X', 'CONFIG_KVM' ] }
|
|
}
|
|
|
|
##
|
|
# @query-s390x-cpu-polarization:
|
|
#
|
|
# Features:
|
|
#
|
|
# @unstable: This command is experimental.
|
|
#
|
|
# Returns: the machine's CPU polarization
|
|
#
|
|
# Since: 8.2
|
|
##
|
|
{ 'command': 'query-s390x-cpu-polarization', 'returns': 'CpuPolarizationInfo',
|
|
'features': [ 'unstable' ],
|
|
'if': { 'all': [ 'TARGET_S390X', 'CONFIG_KVM' ] }
|
|
}
|