mirror_qemu/include
Peter Maydell 378df4b237 Handle CPU interrupts by inline checking of a flag
Fix some of the nasty TCG race conditions and crashes by implementing
cpu_exit() as setting a flag which is checked at the start of each TB.
This avoids crashes if a thread or signal handler calls cpu_exit()
while the execution thread is itself modifying the TB graph (which
may happen in system emulation mode as well as in linux-user mode
with a multithreaded guest binary).

This fixes the crashes seen in LP:668799; however there are another
class of crashes described in LP:1098729 which stem from the fact
that in linux-user with a multithreaded guest all threads will
use and modify the same global TCG date structures (including the
generated code buffer) without any kind of locking. This means that
multithreaded guest binaries are still in the "unsupported"
category.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2013-03-03 14:28:47 +00:00
..
block block: implement BDRV_O_UNMAP 2013-02-22 21:29:42 +01:00
bt softmmu: move remaining include files to include/ subdirectories 2012-12-19 08:32:46 +01:00
char chardev: fix QemuOpts lifecycle 2013-01-16 06:58:53 +01:00
disas build: kill libdis, move disassemblers to disas/ 2012-12-19 08:29:06 +01:00
exec Handle CPU interrupts by inline checking of a flag 2013-03-03 14:28:47 +00:00
fpu softfloat: Implement uint64_to_float128 2013-01-05 10:12:50 +00:00
migration migration: calculate expected_downtime 2013-02-22 10:12:52 +01:00
monitor monitor: move include files to include/monitor/ 2012-12-19 08:31:32 +01:00
net tap: multiqueue support 2013-02-01 11:03:02 -06:00
qapi misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qemu qemu-log: default to stderr for logging output 2013-02-26 13:31:47 -06:00
qom Handle CPU interrupts by inline checking of a flag 2013-03-03 14:28:47 +00:00
sysemu Replace all setjmp()/longjmp() with sigsetjmp()/siglongjmp() 2013-02-23 16:11:19 +00:00
ui ui: add basic GTK gui (v5) 2013-02-21 16:34:48 -06:00
config.h janitor: move remaining public headers to include/ 2012-12-19 08:32:46 +01:00
elf.h janitor: move remaining public headers to include/ 2012-12-19 08:32:46 +01:00
libfdt_env.h fdt: Use bswapN instead of bswap_N 2013-01-12 12:22:58 +00:00
qemu-common.h glib: Add compat wrapper for g_poll on old glib 2013-02-26 13:35:48 -06:00
trace.h build: some simplifications for "trace/Makefile.objs" 2013-01-12 18:42:51 +01:00