unicorn/qemu
David Hildenbrand de513617c8 accel/tcg: allow to invalidate a write TLB entry immediately
Background: s390x implements Low-Address Protection (LAP). If LAP is
enabled, writing to effective addresses (before any translation)
0-511 and 4096-4607 triggers a protection exception.

So we have subpage protection on the first two pages of every address
space (where the lowcore - the CPU private data resides).

By immediately invalidating the write entry but allowing the caller to
continue, we force every write access onto these first two pages into
the slow path. we will get a tlb fault with the specific accessed
addresses and can then evaluate if protection applies or not.

We have to make sure to ignore the invalid bit if tlb_fill() succeeds.

Backports commit f52bfb12143e29d7c8bd827bdb751aee47a9694e from qemu
2020-01-14 07:14:10 -05:00
..
accel accel/tcg: allow to invalidate a write TLB entry immediately 2020-01-14 07:14:10 -05:00
crypto
default-configs target/riscv: Initial introduction of the RISC-V target 2019-03-08 21:46:10 -05:00
docs
fpu fpu: rename softfloat-specialize.h -> .inc.c 2019-11-18 21:12:30 -05:00
hw i386: Update new x86_apicid parsing rules with die_offset support 2019-08-08 18:22:03 -04:00
include accel/tcg: allow to invalidate a write TLB entry immediately 2020-01-14 07:14:10 -05:00
qapi
qobject
qom cpu: Move icount_decr to CPUNegativeOffsetState 2019-06-13 15:34:28 -04:00
scripts decodetree: Suppress redundant declaration warnings 2019-11-18 21:21:30 -05:00
target target/sparc: sun4u Invert Endian TTE bit 2020-01-07 19:21:30 -05:00
tcg tcg: TCGMemOp is now accelerator independent MemOp 2019-11-28 03:01:12 -05:00
util util/cacheinfo: Use uint64_t on LLP64 model to satisfy Windows ARM64 2019-05-09 17:43:27 -04:00
aarch64.h tcg: Factor out probe_write() logic into probe_access() 2020-01-14 07:07:54 -05:00
aarch64eb.h tcg: Factor out probe_write() logic into probe_access() 2020-01-14 07:07:54 -05:00
accel.c
arm.h tcg: Factor out probe_write() logic into probe_access() 2020-01-14 07:07:54 -05:00
armeb.h tcg: Factor out probe_write() logic into probe_access() 2020-01-14 07:07:54 -05:00
CODING_STYLE.rst docs: split the CODING_STYLE doc into distinct groups 2019-11-28 02:54:44 -05:00
configure configure: remove AUTOCONF_HOST 2019-11-18 22:19:47 -05:00
COPYING
COPYING.LIB
cpus.c
exec.c cputlb: Handle watchpoints via TLB_WATCHPOINT 2020-01-14 06:58:33 -05:00
gen_all_header.sh
glib_compat.c target/arm/translate: Synchronize with Qemu 2019-04-27 10:13:01 -04:00
header_gen.py tcg: Factor out probe_write() logic into probe_access() 2020-01-14 07:07:54 -05:00
ioport.c
LICENSE
m68k.h tcg: Factor out probe_write() logic into probe_access() 2020-01-14 07:07:54 -05:00
Makefile Makefile: Rename targets for make recursion 2019-08-08 17:26:49 -04:00
Makefile.objs
Makefile.target
memory_ldst.inc.c memory: Single byte swap along the I/O path 2020-01-07 19:12:04 -05:00
memory_mapping.c
memory.c memory: Single byte swap along the I/O path 2020-01-07 19:12:04 -05:00
mips64.h tcg: Factor out probe_write() logic into probe_access() 2020-01-14 07:07:54 -05:00
mips64el.h tcg: Factor out probe_write() logic into probe_access() 2020-01-14 07:07:54 -05:00
mips.h tcg: Factor out probe_write() logic into probe_access() 2020-01-14 07:07:54 -05:00
mipsel.h tcg: Factor out probe_write() logic into probe_access() 2020-01-14 07:07:54 -05:00
powerpc.h tcg: Factor out probe_write() logic into probe_access() 2020-01-14 07:07:54 -05:00
qemu-timer.c
riscv32.h tcg: Factor out probe_write() logic into probe_access() 2020-01-14 07:07:54 -05:00
riscv64.h tcg: Factor out probe_write() logic into probe_access() 2020-01-14 07:07:54 -05:00
rules.mak
sparc64.h tcg: Factor out probe_write() logic into probe_access() 2020-01-14 07:07:54 -05:00
sparc.h tcg: Factor out probe_write() logic into probe_access() 2020-01-14 07:07:54 -05:00
unicorn_common.h
VERSION Open 5.0 development tree 2020-01-07 17:50:51 -05:00
vl.c
vl.h
x86_64.h tcg: Factor out probe_write() logic into probe_access() 2020-01-14 07:07:54 -05:00