diff options
author | Andrew Waterman <aswaterman@gmail.com> | 2018-12-20 12:41:24 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-20 12:41:24 -0800 |
commit | 337929ba8e51d5823d6c0a3e3cc11fd93d51ace2 (patch) | |
tree | 3595b1947a8bc30d0df864084e2108ca49400030 /src/supervisor.tex | |
parent | c65e409ed4a755178631e34f2dc5f0f95f488dc6 (diff) | |
download | riscv-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.tex | 12 |
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. |