From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55244) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZPZ5W-0001hX-7L for qemu-devel@nongnu.org; Wed, 12 Aug 2015 12:41:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZPZ5R-00080L-Sg for qemu-devel@nongnu.org; Wed, 12 Aug 2015 12:41:14 -0400 Received: from mail-wi0-x232.google.com ([2a00:1450:400c:c05::232]:34278) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZPZ5R-0007zR-Lp for qemu-devel@nongnu.org; Wed, 12 Aug 2015 12:41:09 -0400 Received: by wicne3 with SMTP id ne3so225926971wic.1 for ; Wed, 12 Aug 2015 09:41:09 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Wed, 12 Aug 2015 18:40:52 +0200 Message-Id: <1439397664-70734-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH 00/10] translate-all.c thread-safety List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: mttcg@greensocs.com, fred.konrad@greensocs.com Hi, this is my attempt at 1) extracting upstreamable parts out of Fred's MTTCG, 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(-) -- 1.8.3.1