diff --git a/src/supervisor.adoc b/src/supervisor.adoc index 3e216964f..dda897da5 100644 --- a/src/supervisor.adoc +++ b/src/supervisor.adoc @@ -2283,8 +2283,9 @@ coherent with store instructions that modify PTEs. == "Svukte" Extension for Address-Independent Latency of User-Mode Faults to Supervisor Addresses, Version 0.3 The Svukte extension provides a means to make user-mode accesses to supervisor -memory raise page faults in constant time, mitigating attacks that attempt to -discover the supervisor software's address-space layout. +memory raise page faults with timing independent of the address-translation +configuration and page-table contents, thereby mitigating attacks that attempt +to discover the supervisor software's address-space layout. If the Svukte extension is implemented, the `senvcfg`.UKTE field is writable. If the hypervisor extension is additionally implemented, the `hstatus`.HUKTE @@ -2309,6 +2310,9 @@ raises a page-fault exception corresponding to the original access type. The timing of an instruction that raises an exception for this reason must be independent of the faulting virtual address. +NOTE: An Svukte-qualified access to such an address raises an exception even +if the underlying PTE would have otherwise allowed the access. + NOTE: Since whether an instruction is Svukte-qualified depends on the _effective_ privilege mode of the access, even some instructions executed in HS-mode or M-mode (e.g. HLV with `hstatus`.SPVP=0, or LW with `mstatus`.MPRV=1 and