diff options
author | Andrew Waterman <andrew@sifive.com> | 2021-12-15 17:21:50 -0800 |
---|---|---|
committer | Andrew Waterman <andrew@sifive.com> | 2021-12-15 17:21:50 -0800 |
commit | 56515289e5999512fe578cdddf861b730d790018 (patch) | |
tree | b79ea0dc1fbdfedbf3e972dfe1a41985c14da208 /src/hypervisor.tex | |
parent | 2344b1575652f6a62286668678ebca323cc1ec39 (diff) | |
download | riscv-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.tex | 13 |
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} |