Difference between revisions of "Power ISA/Privilege States"

From RCS Wiki
Jump to navigation Jump to search
(→‎POWER9: remove redundant reference (see section above))
Line 16: Line 16:
  
 
IBM has confirmed to Raptor in direct messaging that the ultravisor state does not exist in POWER9, despite some material continuing to reference it.  This information was also made public on Twitter.<ref>Lynn, Justin. [https://twitter.com/justinrwlynn/status/956772078702571520 tweet]</ref>
 
IBM has confirmed to Raptor in direct messaging that the ultravisor state does not exist in POWER9, despite some material continuing to reference it.  This information was also made public on Twitter.<ref>Lynn, Justin. [https://twitter.com/justinrwlynn/status/956772078702571520 tweet]</ref>
 
On March 22, 2018, a paper<ref>Guerney D. H. Hunt, Richard (Rick) H. Boivie, Elaine Rivette Palmer, Dimitrios Pendarakis https://www.ibm.com/developerworks/library/l-support-protected-computing/ Supporting protected computing on IBM Power Architecture</ref> was published on IBM developerWorks, explaining the reasoning for and the future use of the Ultravisor State.
 
  
 
=== Hypervisor State ===
 
=== Hypervisor State ===

Revision as of 17:38, 7 August 2019

States

Ultravisor State

The Ultravisor State is a privilege mode part of the IBM Protected Execution Facility which enables support for SVMs (Secure Virtual Machines).

It is relatively new, and is not mentioned in Power ISA version 2.07 documents at all, and version 3.0B only mentions it as a possible privilege of instructions. There already is source code available which references e.g. the existence of an Ultravisor State Machine State Register bit.[1] It will probably be part of future revisions of the Power ISA.

On March 22, 2018 IBM published an article about Protected Computing using the Ultravisor state at https://developer.ibm.com/articles/l-support-protected-computing/

In October 2018, IBM gave a talk about Ultravisor/Protected Execution Facility at the Linux Security Summit.

A report from IBM for the Air Force Research Laboratory indicates that the Ultravisor State was already tested in a modified POWER8 processor simulation.[2]

POWER9

IBM has confirmed to Raptor in direct messaging that the ultravisor state does not exist in POWER9, despite some material continuing to reference it. This information was also made public on Twitter.[3]

Hypervisor State

Hypervisor State is indicated by the HV (bit 3) of the Machine State Register, and is normally used by a hypervisor. An operating system running without a hypervisor can run in Hypervisor State, with its userland in Problem State and avoid using Privileged State altogether.

Hypervisor State was introduced in POWER4, although for some time it was not included in documentation, appearing only as a reserved bit in the Machine State Register.[4]

Privileged State

Privileged State, also called Supervisor Mode, is normally used by an operating system running on top of a hypervisor.

Problem State

Problem State, also called User Mode, is indicated by the PR (bit 49) of the Machine State Register.

Instruction Classification

Privilege Classification of Instructions in Power ISA
Code 2.07 3.0B Description
P Yes Yes a privileged instruction.
O Yes Yes an instruction that is treated as privileged or nonprivileged (or hypervisor, for mtspr), depend-

ing on the SPR or PMR number.

PI No Yes an instruction that is illegal in privileged state.
H Yes Yes an instruction that can be executed only in hypervisor state
PH Yes No a hypervisor privileged instruction if Category Embedded.Hypervisor is implemented; otherwise

denotes a privileged instruction.

M Yes No an instruction that is treated as privileged or nonprivileged, depending on the value of the UCLE

bit in the MSR

U No Yes an instruction that can be executed only in ultravisor state

Ultravisor-related Patents, Patent Applications and Official Documentation

References