I have given a respin to the tb_lock branch on top of master. Turns out the freezes I was getting were due to the magic we used to rely on (e.g. for icount). Works now!
The branch is here: https://github.com/cota/qemu/tree/tb-lock Boot-tested on ppc64, aarch64 and alpha smp guests (<=64) with MTTCG. A couple of questions: - Does anyone remember what work remains to be done to safely enable MTTCG for i386? I just forced it on: without the tb lock removal I booted an 8-core guest, but without tb_lock the guest kernel dies pretty quickly. So I guess there's still work to do. - In user-mode without tb_lock, should I worry about fork happening while any of the newly-introduced locks are held? For instance, tb->jmp_lock (introduced in "translate-all: protect TB jumps with a per-destination-TB lock"), or tcg_region_tree's lock. Thanks, Emilio