12345678910111213141516171819202122232425262728293031 |
- KVM implements the PSCI (Power State Coordination Interface)
- specification in order to provide services such as CPU on/off, reset
- and power-off to the guest.
- The PSCI specification is regularly updated to provide new features,
- and KVM implements these updates if they make sense from a virtualization
- point of view.
- This means that a guest booted on two different versions of KVM can
- observe two different "firmware" revisions. This could cause issues if
- a given guest is tied to a particular PSCI revision (unlikely), or if
- a migration causes a different PSCI version to be exposed out of the
- blue to an unsuspecting guest.
- In order to remedy this situation, KVM exposes a set of "firmware
- pseudo-registers" that can be manipulated using the GET/SET_ONE_REG
- interface. These registers can be saved/restored by userspace, and set
- to a convenient value if required.
- The following register is defined:
- * KVM_REG_ARM_PSCI_VERSION:
- - Only valid if the vcpu has the KVM_ARM_VCPU_PSCI_0_2 feature set
- (and thus has already been initialized)
- - Returns the current PSCI version on GET_ONE_REG (defaulting to the
- highest PSCI version implemented by KVM and compatible with v0.2)
- - Allows any PSCI version implemented by KVM and compatible with
- v0.2 to be set with SET_ONE_REG
- - Affects the whole VM (even if the register view is per-vcpu)
|