and 2) documenting what's going on in user-mode MTTCG 3) fix
one bug in the process. I couldn't find any other locking problem
from reading the code.
The final two patches are not really upstreamable because they
add some still unnecessary locks to system emulation, but I included
them to show what's going on. With this locking logic I do not need
tb_lock to be recursive anymore.
Paolo
KONRAD Frederic (4):
cpus: protect work list with work_mutex
cpus: remove tcg_halt_cond global variable.
replace spinlock by QemuMutex.
tcg: protect TBContext with tb_lock.
Paolo Bonzini (8):
exec-all: remove non-TCG stuff from exec-all.h header.
cpu-exec: elide more icount code if CONFIG_USER_ONLY
tcg: code_bitmap is not used by user-mode emulation
tcg: comment on which functions have to be called with mmap_lock held
tcg: add memory barriers in page_find_alloc accesses
exec: make mmap_lock/mmap_unlock globally available
cpu-exec: fix lock hierarchy for user-mode emulation
tcg: comment on which functions have to be called with tb_lock held
bsd-user/qemu.h | 2 -
cpu-exec.c | 107 +++++++++++++++++++++----------
cpus.c | 34 ++++++----
exec.c | 4 ++
hw/i386/kvmvapic.c | 2 +
include/exec/exec-all.h | 19 +++---
include/exec/ram_addr.h | 1 +
include/qom/cpu.h | 9 ++-
include/sysemu/sysemu.h | 3 +
linux-user/main.c | 6 +-
linux-user/qemu.h | 2 -
qom/cpu.c | 1 +
target-i386/cpu.h | 3 +
target-i386/mem_helper.c | 25 +++++++-
target-i386/translate.c | 2 +
tcg/tcg.h | 6 ++
translate-all.c | 161 +++++++++++++++++++++++++++++++++++++----------
17 files changed, 290 insertions(+), 97 deletions(-)