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 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(-) -- 2.8.1