psci.txt 1.3 KB

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