aboutsummaryrefslogtreecommitdiff
path: root/src/supervisor.tex
diff options
context:
space:
mode:
authorAndrew Waterman <aswaterman@gmail.com>2018-12-20 12:41:24 -0800
committerGitHub <noreply@github.com>2018-12-20 12:41:24 -0800
commit337929ba8e51d5823d6c0a3e3cc11fd93d51ace2 (patch)
tree3595b1947a8bc30d0df864084e2108ca49400030 /src/supervisor.tex
parentc65e409ed4a755178631e34f2dc5f0f95f488dc6 (diff)
downloadriscv-isa-manual-337929ba8e51d5823d6c0a3e3cc11fd93d51ace2.zip
riscv-isa-manual-337929ba8e51d5823d6c0a3e3cc11fd93d51ace2.tar.gz
riscv-isa-manual-337929ba8e51d5823d6c0a3e3cc11fd93d51ace2.tar.bz2
Clarify that PTE updates aren't atomic w.r.t. the ultimate access (#308)
I claim that this follows from the text in the following section, but it is clearly deserving of clarification. https://groups.google.com/a/groups.riscv.org/forum/?utm_medium=email&utm_source=footer#!msg/isa-dev/EQQGObY1bQM/xm6imw-aCwAJ
Diffstat (limited to 'src/supervisor.tex')
-rw-r--r--src/supervisor.tex12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/supervisor.tex b/src/supervisor.tex
index 53d7dad..f289c99 100644
--- a/src/supervisor.tex
+++ b/src/supervisor.tex
@@ -1189,8 +1189,11 @@ since the last time the D bit was cleared.
Two schemes to manage the A and D bits are permitted:
\begin{itemize}
\item When a virtual page is accessed and the A bit is clear, or is
+ written and the D bit is clear, a page-fault exception is raised.
+
+\item When a virtual page is accessed and the A bit is clear, or is
written and the D bit is clear, the implementation sets the
- corresponding bit in the PTE. The PTE update must be atomic with
+ corresponding bit(s) in the PTE. The PTE update must be atomic with
respect to other accesses to the PTE, and must atomically check
that the PTE is valid and grants sufficient permissions. The
PTE update must be exact (i.e., not speculative), and observed
@@ -1198,8 +1201,11 @@ Two schemes to manage the A and D bits are permitted:
provided by FENCE instructions and the acquire/release bits on atomic
instructions also orders the PTE updates associated with those loads
and stores as observed by remote harts.
-\item When a virtual page is accessed and the A bit is clear, or is
- written and the D bit is clear, a page-fault exception is raised.
+
+ The PTE update is not required to be atomic with respect to the explicit
+ memory access that caused the update, and the sequence is interruptible.
+ However, the hart must not perform the explicit memory access before the
+ PTE update.
\end{itemize}
All harts in a system must employ the same PTE-update scheme as each other.