diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2019-12-11 22:33:02 +1100 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2020-03-17 09:41:15 +1100 |
commit | 1b99e029c5e7bc99d45a9a9b74f2d4d4a3d5befb (patch) | |
tree | 5217892b875bef4c507bceaf971ac3b771426a98 /net/trace-events | |
parent | 682c1dfb86acb19f542d06375b97c604ee000730 (diff) | |
download | qemu-1b99e029c5e7bc99d45a9a9b74f2d4d4a3d5befb.zip qemu-1b99e029c5e7bc99d45a9a9b74f2d4d4a3d5befb.tar.gz qemu-1b99e029c5e7bc99d45a9a9b74f2d4d4a3d5befb.tar.bz2 |
target/ppc: Introduce ppc_hash64_use_vrma() helper
When running guests under a hypervisor, the hypervisor obviously needs to
be protected from guest accesses even if those are in what the guest
considers real mode (translation off). The POWER hardware provides two
ways of doing that: The old way has guest real mode accesses simply offset
and bounds checked into host addresses. It works, but requires that a
significant chunk of the guest's memory - the RMA - be physically
contiguous in the host, which is pretty inconvenient. The new way, known
as VRMA, has guest real mode accesses translated in roughly the normal way
but with some special parameters.
In POWER7 and POWER8 the LPCR[VPM0] bit selected between the two modes, but
in POWER9 only VRMA mode is supported and LPCR[VPM0] no longer exists. We
handle that difference in behaviour in ppc_hash64_set_isi().. but not in
other places that we blindly check LPCR[VPM0].
Correct those instances with a new helper to tell if we should be in VRMA
mode.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Fabiano Rosas <farosas@linux.ibm.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Diffstat (limited to 'net/trace-events')
0 files changed, 0 insertions, 0 deletions