unicorn/qemu
Alex Bennée 7aab0bd9a6
translate-all: add DEBUG_LOCKING asserts
This adds asserts to check the locking on the various translation
engines structures. There are two sets of structures that are protected
by locks.

The first the l1map and PageDesc structures used to track which
translation blocks are associated with which physical addresses. In
user-mode this is covered by the mmap_lock.

The second case are TB context related structures which are protected by
tb_lock which is also user-mode only.

Currently the asserts do nothing in SoftMMU mode but this will change
for MTTCG.

Backports commit 301e40ed8005306c009978be295ed9a4b725178b from qemu
2018-02-28 08:56:15 -05:00
..
crypto crypto: Clean up includes 2018-02-19 00:47:40 -05:00
default-configs arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
docs docs: clarify memory region lifecycle 2018-02-12 15:11:21 -05:00
fpu fpu: add mechanism to check for invalid long double formats 2018-02-26 02:27:40 -05:00
hw qdev: Fix object reference leak in case device.realize() fails 2018-02-25 21:00:26 -05:00
include translate-all: add DEBUG_LOCKING asserts 2018-02-28 08:56:15 -05:00
qapi qapi: rename QmpOutputVisitor to QObjectOutputVisitor 2018-02-27 08:05:33 -05:00
qobject qapi: rename QmpOutputVisitor to QObjectOutputVisitor 2018-02-27 08:05:33 -05:00
qom qapi: rename QmpOutputVisitor to QObjectOutputVisitor 2018-02-27 08:05:33 -05:00
scripts qapi: rename QmpOutputVisitor to QObjectOutputVisitor 2018-02-27 08:05:33 -05:00
target-arm arm: Add an option to turn on/off vPMU support 2018-02-28 08:49:23 -05:00
target-i386 target-i386: remove helper_lock() 2018-02-27 23:43:22 -05:00
target-m68k target-m68k: immediate ops manage word and byte operands 2018-02-28 08:42:22 -05:00
target-mips softmmu: Add probe_write() 2018-02-27 12:20:50 -05:00
target-sparc sparc: Use g_memdup() instead of g_new0() + memcpy() 2018-02-25 23:19:44 -05:00
tcg tcg: Emit barriers with parallel_cpus 2018-02-27 22:28:33 -05:00
util qapi: rename QmpOutputVisitor to QObjectOutputVisitor 2018-02-27 08:05:33 -05:00
aarch64.h target-arm: emulate aarch64's LL/SC using cmpxchg helpers 2018-02-28 00:21:27 -05:00
aarch64eb.h target-arm: emulate aarch64's LL/SC using cmpxchg helpers 2018-02-28 00:21:27 -05:00
accel.c clean-up: removed duplicate #includes 2018-02-28 08:51:56 -05:00
arm.h tcg: Add CONFIG_ATOMIC64 2018-02-27 22:25:36 -05:00
armeb.h tcg: Add CONFIG_ATOMIC64 2018-02-27 22:25:36 -05:00
atomic_template.h tcg: Add atomic128 helpers 2018-02-27 21:43:48 -05:00
CODING_STYLE import 2015-08-21 15:04:50 +08:00
configure tcg: Add CONFIG_ATOMIC64 2018-02-27 22:25:36 -05:00
COPYING import 2015-08-21 15:04:50 +08:00
COPYING.LIB import 2015-08-21 15:04:50 +08:00
cpu-exec-common.c tcg: Add EXCP_ATOMIC 2018-02-27 11:57:58 -05:00
cpu-exec.c tcg: Add EXCP_ATOMIC 2018-02-27 11:57:58 -05:00
cpus.c tcg: Add EXCP_ATOMIC 2018-02-27 11:57:58 -05:00
cputlb.c clean-up: removed duplicate #includes 2018-02-28 08:51:56 -05:00
exec.c exec: Avoid direct references to Int128 parts 2018-02-27 11:01:43 -05:00
gen_all_header.sh arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
glib_compat.c qapi: Fix memleak in string visitors on int lists 2018-02-25 00:20:34 -05:00
HACKING import 2015-08-21 15:04:50 +08:00
header_gen.py target-arm: emulate aarch64's LL/SC using cmpxchg helpers 2018-02-28 00:21:27 -05:00
ioport.c hw: remove pio_addr_t 2018-02-24 02:43:16 -05:00
LICENSE import 2015-08-21 15:04:50 +08:00
m68k.h tcg: Add CONFIG_ATOMIC64 2018-02-27 22:25:36 -05:00
Makefile Makefile: Add a FORCE target 2018-02-24 17:03:51 -05:00
Makefile.objs tcg: Add atomic helpers 2018-02-27 15:57:47 -05:00
Makefile.target tcg: Add atomic helpers 2018-02-27 15:57:47 -05:00
memory.c exec.c: Remove static allocation of sub_section of sub_page 2018-02-26 10:50:04 -05:00
memory_mapping.c include/qemu/osdep.h: Don't include qapi/error.h 2018-02-21 23:08:18 -05:00
mips.h tcg: Add CONFIG_ATOMIC64 2018-02-27 22:25:36 -05:00
mips64.h tcg: Add CONFIG_ATOMIC64 2018-02-27 22:25:36 -05:00
mips64el.h tcg: Add CONFIG_ATOMIC64 2018-02-27 22:25:36 -05:00
mipsel.h tcg: Add CONFIG_ATOMIC64 2018-02-27 22:25:36 -05:00
powerpc.h tcg: Add CONFIG_ATOMIC64 2018-02-27 22:25:36 -05:00
qapi-schema.json qapi: Lazy creation of array types 2018-02-19 18:55:35 -05:00
qemu-timer.c timer/cpus: fix some typos and update some comments 2018-02-25 23:21:57 -05:00
rules.mak rules.mak: Don't extract libs from .mo-libs in link command 2018-02-26 02:08:03 -05:00
softmmu_template.h cputlb: Remove includes from softmmu_template.h 2018-02-27 12:40:43 -05:00
sparc.h tcg: Add CONFIG_ATOMIC64 2018-02-27 22:25:36 -05:00
sparc64.h tcg: Add CONFIG_ATOMIC64 2018-02-27 22:25:36 -05:00
tcg-runtime.c tcg: Add CONFIG_ATOMIC64 2018-02-27 22:25:36 -05:00
translate-all.c translate-all: add DEBUG_LOCKING asserts 2018-02-28 08:56:15 -05:00
translate-all.h translate-all.c: Compute L1 page table properties at runtime 2018-02-26 11:46:58 -05:00
translate-common.c exec: Clean up includes 2018-02-19 00:49:55 -05:00
unicorn_common.h qom/cpu: Add MemoryRegion property 2018-02-18 21:54:50 -05:00
VERSION import 2015-08-21 15:04:50 +08:00
vl.c cpu: Support a target CPU having a variable page size 2018-02-26 12:29:08 -05:00
vl.h import 2015-08-21 15:04:50 +08:00
x86_64.h tcg: Add CONFIG_ATOMIC64 2018-02-27 22:25:36 -05:00