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