Sergey Fedorov <sergey.fedo...@linaro.org> writes: > From: Sergey Fedorov <serge.f...@gmail.com> > > When patching translated code for direct block chaining/unchaining, > modification of concurrently executing code can happen in multi-threaded > execution. Currently only user-mode is affected. To make direct block > patching > safe, some care must be taken to make sure that the code modification is made > atomic and concurrently executed code is guaranteed to be consistent. > > This patch series fixes all supported TCG targets using direct patching and > documents the requirement for direct jump patching be atomic and thread-safe. > > The series' tree can be found in a public git repository [1]. > > [1] https://github.com/sergefdrv/qemu/tree/atomic-tb-patching
So I already know this will need a re-base as the patches don't apply cleanly to the current master. The git tree re-based without issue so I guess that is just git am being a bit crap. > > Sergey Fedorov (10): > pc-bios/s390-ccw: Use correct strip when cross-compiling > tci: Make direct jump patching thread-safe > tcg/ppc: Make direct jump patching thread-safe > tcg/i386: Make direct jump patching thread-safe > tcg/s390: Make direct jump patching thread-safe > tcg/arm: Make direct jump patching thread-safe > tcg/aarch64: Make direct jump patching thread-safe > tcg/sparc: Make direct jump patching thread-safe > tcg/mips: Make direct jump patching thread-safe > tcg: Note requirement on atomic direct jump patching > > Stefan Weil (1): > tci: Fix build regression > > include/exec/exec-all.h | 32 ++++++------------------------ > pc-bios/s390-ccw/Makefile | 2 +- > tcg/aarch64/tcg-target.inc.c | 14 +++++++++++++- > tcg/arm/tcg-target.inc.c | 17 ++++++++++++++++ > tcg/i386/tcg-target.inc.c | 17 ++++++++++++++++ > tcg/mips/tcg-target.inc.c | 3 ++- > tcg/ppc/tcg-target.inc.c | 22 +++++++++++++++++---- > tcg/s390/tcg-target.inc.c | 6 ++++++ > tcg/sparc/tcg-target.inc.c | 2 +- > tcg/tci/tcg-target.inc.c | 2 ++ > tci.c | 46 > +++++++++++++++++++++++++------------------- > translate-all.c | 2 ++ > 12 files changed, 111 insertions(+), 54 deletions(-) -- Alex Bennée