unicorn/qemu
Alex Bennée caba238b5a
tcg: enable MTTCG by default for ARM on x86 hosts
This enables the multi-threaded system emulation by default for ARMv7
and ARMv8 guests using the x86_64 TCG backend. This is because on the
guest side:

- The ARM translate.c/translate-64.c have been converted to
- use MTTCG safe atomic primitives
- emit the appropriate barrier ops
- The ARM machine has been updated to
- hold the BQL when modifying shared cross-vCPU state
- defer powerctl changes to async safe work

All the host backends support the barrier and atomic primitives but
need to provide same-or-better support for normal load/store
operations.

Backports commit ca759f9e387db87e1719911f019bc60c74be9ed8 from qemu
2018-03-02 10:32:47 -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 softfloat: Add float128_to_uint32_round_to_zero() 2018-03-02 08:33:09 -05:00
hw i386: Remove AMD feature flag aliases from Opteron models 2018-03-01 23:49:04 -05:00
include cputlb and arm/sparc targets: convert mmuidx flushes from varg to bitmap 2018-03-02 10:12:40 -05:00
qapi qapi: rename QmpOutputVisitor to QObjectOutputVisitor 2018-02-27 08:05:33 -05:00
qobject util/cutils: Rename qemu_strtoll(), qemu_strtoull() 2018-03-02 08:39:45 -05:00
qom arm: Correctly handle watchpoints for BE32 CPUs 2018-03-02 00:24:33 -05:00
scripts qapi: rename QmpOutputVisitor to QObjectOutputVisitor 2018-02-27 08:05:33 -05:00
target tcg: enable MTTCG by default for ARM on x86 hosts 2018-03-02 10:32:47 -05:00
tcg tcg: enable MTTCG by default for ARM on x86 hosts 2018-03-02 10:32:47 -05:00
util util/cutils: Change qemu_strtosz*() from int64_t to uint64_t 2018-03-02 08:58:55 -05:00
aarch64.h Resolve symbol errors with softfloat 2018-03-02 09:25:05 -05:00
aarch64eb.h Resolve symbol errors with softfloat 2018-03-02 09:25:05 -05:00
accel.c clean-up: removed duplicate #includes 2018-02-28 08:51:56 -05:00
arm.h Resolve symbol errors with softfloat 2018-03-02 09:25:05 -05:00
armeb.h Resolve symbol errors with softfloat 2018-03-02 09:25:05 -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: enable MTTCG by default for ARM on x86 hosts 2018-03-02 10:32:47 -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: handle EXCP_ATOMIC exception for system emulation 2018-03-02 09:56:43 -05:00
cpus.c tcg: handle EXCP_ATOMIC exception for system emulation 2018-03-02 09:56:43 -05:00
cputlb.c cputlb: tweak qemu_ram_addr_from_host_nofail reporting 2018-03-02 10:24:03 -05:00
exec.c exec: make address_space_cache_destroy idempotent 2018-03-02 08:16:17 -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 Resolve symbol errors with softfloat 2018-03-02 09:25:05 -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 Resolve symbol errors with softfloat 2018-03-02 09:25:05 -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 Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
memory.c cputlb: drop flush_global flag from tlb_flush 2018-03-01 19:36:04 -05:00
memory_ldst.inc.c exec: introduce memory_ldst.inc.c 2018-03-01 09:59:34 -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 Resolve symbol errors with softfloat 2018-03-02 09:25:05 -05:00
mips64.h Resolve symbol errors with softfloat 2018-03-02 09:25:05 -05:00
mips64el.h Resolve symbol errors with softfloat 2018-03-02 09:25:05 -05:00
mipsel.h Resolve symbol errors with softfloat 2018-03-02 09:25:05 -05:00
powerpc.h Resolve symbol errors with softfloat 2018-03-02 09:25:05 -05:00
qapi-schema.json qapi: add missing colon-ending for section name 2018-03-01 09:07:10 -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 Resolve symbol errors with softfloat 2018-03-02 09:25:05 -05:00
sparc64.h Resolve symbol errors with softfloat 2018-03-02 09:25:05 -05:00
tcg-runtime.c tcg: Add opcode for ctpop 2018-03-01 18:26:41 -05:00
translate-all.c tcg: enable thread-per-vCPU 2018-03-02 09:43:14 -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 tcg: add options for enabling MTTCG 2018-03-02 09:25:01 -05:00
vl.h import 2015-08-21 15:04:50 +08:00
x86_64.h Resolve symbol errors with softfloat 2018-03-02 09:25:05 -05:00