xref: /openbmc/qemu/qapi/machine-s390x.json (revision d2e9b78162e31b1eaf20f3a4f563da82da56908d)
1*f8d41d05SDaniel P. Berrangé# -*- Mode: Python -*-
2*f8d41d05SDaniel P. Berrangé# vim: filetype=python
3*f8d41d05SDaniel P. Berrangé#
4*f8d41d05SDaniel P. Berrangé# SPDX-License-Identifier: GPL-2.0-or-later
5*f8d41d05SDaniel P. Berrangé# This work is licensed under the terms of the GNU GPL, version 2 or later.
6*f8d41d05SDaniel P. Berrangé# See the COPYING file in the top-level directory.
7*f8d41d05SDaniel P. Berrangé
8*f8d41d05SDaniel P. Berrangé{ 'include': 'machine-common.json' }
9*f8d41d05SDaniel P. Berrangé
10*f8d41d05SDaniel P. Berrangé##
11*f8d41d05SDaniel P. Berrangé# @S390CpuPolarization:
12*f8d41d05SDaniel P. Berrangé#
13*f8d41d05SDaniel P. Berrangé# An enumeration of CPU polarization that can be assumed by a virtual
14*f8d41d05SDaniel P. Berrangé# S390 CPU
15*f8d41d05SDaniel P. Berrangé#
16*f8d41d05SDaniel P. Berrangé# Since: 8.2
17*f8d41d05SDaniel P. Berrangé##
18*f8d41d05SDaniel P. Berrangé{ 'enum': 'S390CpuPolarization',
19*f8d41d05SDaniel P. Berrangé  'data': [ 'horizontal', 'vertical' ]
20*f8d41d05SDaniel P. Berrangé}
21*f8d41d05SDaniel P. Berrangé
22*f8d41d05SDaniel P. Berrangé##
23*f8d41d05SDaniel P. Berrangé# @set-cpu-topology:
24*f8d41d05SDaniel P. Berrangé#
25*f8d41d05SDaniel P. Berrangé# Modify the topology by moving the CPU inside the topology tree, or
26*f8d41d05SDaniel P. Berrangé# by changing a modifier attribute of a CPU.  Absent values will not
27*f8d41d05SDaniel P. Berrangé# be modified.
28*f8d41d05SDaniel P. Berrangé#
29*f8d41d05SDaniel P. Berrangé# @core-id: the vCPU ID to be moved
30*f8d41d05SDaniel P. Berrangé#
31*f8d41d05SDaniel P. Berrangé# @socket-id: destination socket to move the vCPU to
32*f8d41d05SDaniel P. Berrangé#
33*f8d41d05SDaniel P. Berrangé# @book-id: destination book to move the vCPU to
34*f8d41d05SDaniel P. Berrangé#
35*f8d41d05SDaniel P. Berrangé# @drawer-id: destination drawer to move the vCPU to
36*f8d41d05SDaniel P. Berrangé#
37*f8d41d05SDaniel P. Berrangé# @entitlement: entitlement to set
38*f8d41d05SDaniel P. Berrangé#
39*f8d41d05SDaniel P. Berrangé# @dedicated: whether the provisioning of real to virtual CPU is
40*f8d41d05SDaniel P. Berrangé#     dedicated
41*f8d41d05SDaniel P. Berrangé#
42*f8d41d05SDaniel P. Berrangé# Features:
43*f8d41d05SDaniel P. Berrangé#
44*f8d41d05SDaniel P. Berrangé# @unstable: This command is experimental.
45*f8d41d05SDaniel P. Berrangé#
46*f8d41d05SDaniel P. Berrangé# Since: 8.2
47*f8d41d05SDaniel P. Berrangé##
48*f8d41d05SDaniel P. Berrangé{ 'command': 'set-cpu-topology',
49*f8d41d05SDaniel P. Berrangé  'data': {
50*f8d41d05SDaniel P. Berrangé      'core-id': 'uint16',
51*f8d41d05SDaniel P. Berrangé      '*socket-id': 'uint16',
52*f8d41d05SDaniel P. Berrangé      '*book-id': 'uint16',
53*f8d41d05SDaniel P. Berrangé      '*drawer-id': 'uint16',
54*f8d41d05SDaniel P. Berrangé      '*entitlement': 'S390CpuEntitlement',
55*f8d41d05SDaniel P. Berrangé      '*dedicated': 'bool'
56*f8d41d05SDaniel P. Berrangé  },
57*f8d41d05SDaniel P. Berrangé  'features': [ 'unstable' ]
58*f8d41d05SDaniel P. Berrangé}
59*f8d41d05SDaniel P. Berrangé
60*f8d41d05SDaniel P. Berrangé##
61*f8d41d05SDaniel P. Berrangé# @CPU_POLARIZATION_CHANGE:
62*f8d41d05SDaniel P. Berrangé#
63*f8d41d05SDaniel P. Berrangé# Emitted when the guest asks to change the polarization.
64*f8d41d05SDaniel P. Berrangé#
65*f8d41d05SDaniel P. Berrangé# The guest can tell the host (via the PTF instruction) whether the
66*f8d41d05SDaniel P. Berrangé# CPUs should be provisioned using horizontal or vertical
67*f8d41d05SDaniel P. Berrangé# polarization.
68*f8d41d05SDaniel P. Berrangé#
69*f8d41d05SDaniel P. Berrangé# On horizontal polarization the host is expected to provision all
70*f8d41d05SDaniel P. Berrangé# vCPUs equally.
71*f8d41d05SDaniel P. Berrangé#
72*f8d41d05SDaniel P. Berrangé# On vertical polarization the host can provision each vCPU
73*f8d41d05SDaniel P. Berrangé# differently.  The guest will get information on the details of the
74*f8d41d05SDaniel P. Berrangé# provisioning the next time it uses the STSI(15) instruction.
75*f8d41d05SDaniel P. Berrangé#
76*f8d41d05SDaniel P. Berrangé# @polarization: polarization specified by the guest
77*f8d41d05SDaniel P. Berrangé#
78*f8d41d05SDaniel P. Berrangé# Features:
79*f8d41d05SDaniel P. Berrangé#
80*f8d41d05SDaniel P. Berrangé# @unstable: This event is experimental.
81*f8d41d05SDaniel P. Berrangé#
82*f8d41d05SDaniel P. Berrangé# Since: 8.2
83*f8d41d05SDaniel P. Berrangé#
84*f8d41d05SDaniel P. Berrangé# .. qmp-example::
85*f8d41d05SDaniel P. Berrangé#
86*f8d41d05SDaniel P. Berrangé#     <- { "event": "CPU_POLARIZATION_CHANGE",
87*f8d41d05SDaniel P. Berrangé#          "data": { "polarization": "horizontal" },
88*f8d41d05SDaniel P. Berrangé#          "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
89*f8d41d05SDaniel P. Berrangé##
90*f8d41d05SDaniel P. Berrangé{ 'event': 'CPU_POLARIZATION_CHANGE',
91*f8d41d05SDaniel P. Berrangé  'data': { 'polarization': 'S390CpuPolarization' },
92*f8d41d05SDaniel P. Berrangé  'features': [ 'unstable' ]
93*f8d41d05SDaniel P. Berrangé}
94*f8d41d05SDaniel P. Berrangé
95*f8d41d05SDaniel P. Berrangé##
96*f8d41d05SDaniel P. Berrangé# @CpuPolarizationInfo:
97*f8d41d05SDaniel P. Berrangé#
98*f8d41d05SDaniel P. Berrangé# The result of a CPU polarization query.
99*f8d41d05SDaniel P. Berrangé#
100*f8d41d05SDaniel P. Berrangé# @polarization: the CPU polarization
101*f8d41d05SDaniel P. Berrangé#
102*f8d41d05SDaniel P. Berrangé# Since: 8.2
103*f8d41d05SDaniel P. Berrangé##
104*f8d41d05SDaniel P. Berrangé{ 'struct': 'CpuPolarizationInfo',
105*f8d41d05SDaniel P. Berrangé  'data': { 'polarization': 'S390CpuPolarization' }
106*f8d41d05SDaniel P. Berrangé}
107*f8d41d05SDaniel P. Berrangé
108*f8d41d05SDaniel P. Berrangé##
109*f8d41d05SDaniel P. Berrangé# @query-s390x-cpu-polarization:
110*f8d41d05SDaniel P. Berrangé#
111*f8d41d05SDaniel P. Berrangé# Features:
112*f8d41d05SDaniel P. Berrangé#
113*f8d41d05SDaniel P. Berrangé# @unstable: This command is experimental.
114*f8d41d05SDaniel P. Berrangé#
115*f8d41d05SDaniel P. Berrangé# Returns: the machine's CPU polarization
116*f8d41d05SDaniel P. Berrangé#
117*f8d41d05SDaniel P. Berrangé# Since: 8.2
118*f8d41d05SDaniel P. Berrangé##
119*f8d41d05SDaniel P. Berrangé{ 'command': 'query-s390x-cpu-polarization', 'returns': 'CpuPolarizationInfo',
120*f8d41d05SDaniel P. Berrangé  'features': [ 'unstable' ]
121*f8d41d05SDaniel P. Berrangé}
122