aboutsummaryrefslogtreecommitdiff
path: root/src/hypervisor.tex
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2021-12-15 17:21:50 -0800
committerAndrew Waterman <andrew@sifive.com>2021-12-15 17:21:50 -0800
commit56515289e5999512fe578cdddf861b730d790018 (patch)
treeb79ea0dc1fbdfedbf3e972dfe1a41985c14da208 /src/hypervisor.tex
parent2344b1575652f6a62286668678ebca323cc1ec39 (diff)
downloadriscv-isa-manual-56515289e5999512fe578cdddf861b730d790018.zip
riscv-isa-manual-56515289e5999512fe578cdddf861b730d790018.tar.gz
riscv-isa-manual-56515289e5999512fe578cdddf861b730d790018.tar.bz2
Improve HFENCE.GVMA commentary
See #793
Diffstat (limited to 'src/hypervisor.tex')
-rw-r--r--src/hypervisor.tex13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/hypervisor.tex b/src/hypervisor.tex
index b8c1994..13cb599 100644
--- a/src/hypervisor.tex
+++ b/src/hypervisor.tex
@@ -2009,12 +2009,13 @@ the latter cache that match the HFENCE.GVMA's address and VMID arguments.
More commonly, implementations contain address-translation caches that map
guest virtual addresses directly to supervisor physical addresses, removing
a level of indirection.
-For such implementations, any entry that was populated using a G-stage
-translation that is ordered by an HFENCE.GVMA instruction must be flushed.
-Because it is often impractical to determine which such entries match the
-HFENCE.GVMA's address argument, a common technique is to flush all entries
-that match the HFENCE.GVMA's VMID argument, regardless of the address
-argument.
+For such implementations, any entry whose guest virtual address maps to
+a guest physical address that matches the HFENCE.GVMA's address and VMID
+arguments must be flushed.
+Selectively flushing entries in this fashion requires tagging them with
+the guest physical address, which is costly, and so a common technique is
+to flush all entries that match the HFENCE.GVMA's VMID argument, regardless
+of the address argument.
\end{commentary}
\begin{commentary}