Sergey Fedorov <sergey.fedo...@linaro.org> writes: > From: Sergey Fedorov <serge.f...@gmail.com> > > This series combines a set of patches which is meant to improve overall code > structure and readability of the direct block chaining mechanism. The other > point is to make a step towards thread safety of TB chainig. > > The series' tree can be found in a public git repository [1]. > > [1] https://github.com/sergefdrv/qemu/tree/tb-chaining-cleanup-v4
I've run into a bunch of merge failures whilst trying to build a combined tree. A bunch in the tcg/* files due to atomic patching fixes now in rth/tcg-next and the final one due to the code motion in cpu-exec from the misc clean-ups. It might be worth re-basing at least on tcg-next? > > Summary of changes: > Changes in v4: > * Removed assert from tb_add_jump() [PATCH v4 02/10] > * Added comment on TB stuff synchronization [PATCH v4 04/10] > * Documented tcg_gen_goto_tb() and moved its usage notes there > [PATCH v4 09/10] and [PATCH v4 10/10] > * Cc'ed usermode maintainers in commit message [PATCH v4 10/10] > Changes in v3: > * New patch to clean up safety checks [PATCH v3 09/10] > * New patch to eliminate unneeded checks in user-mode [PATCH v3 10/10] > Changes in v2: > * Eliminated duplicate dereference of 'ptb' in tb_jmp_remove() [PATCH v2 > 2/8] > * Tweaked a comment [PATCH v2 4/8] > * Complete rewrite [PATCH v2 5/8] > * Tweaked a comment; eliminated duplicate dereference of 'ptb' in > tb_jmp_unlink() [PATCH v2 8/8] > > Sergey Fedorov (10): > tcg: Clean up direct block chaining data fields > tcg: Use uintptr_t type for jmp_list_{next|first} fields of TB > tcg: Rearrange tb_link_page() to avoid forward declaration > tcg: Init TB's direct jumps before making it visible > tcg: Clarify thread safety check in tb_add_jump() > tcg: Rename tb_jmp_remove() to tb_remove_from_jmp_list() > tcg: Extract removing of jumps to TB from tb_phys_invalidate() > tcg: Clean up tb_jmp_unlink() > tcg: Clean up direct block chaining safety checks > tcg: Allow goto_tb to any target PC in user mode > > cpu-exec.c | 7 +- > include/exec/exec-all.h | 69 ++++++---- > target-alpha/translate.c | 4 + > target-arm/translate-a64.c | 2 + > target-arm/translate.c | 17 ++- > target-cris/translate.c | 16 ++- > target-i386/translate.c | 23 ++-- > target-lm32/translate.c | 21 ++- > target-m68k/translate.c | 18 ++- > target-microblaze/translate.c | 15 ++- > target-mips/translate.c | 20 ++- > target-moxie/translate.c | 21 ++- > target-openrisc/translate.c | 20 ++- > target-ppc/translate.c | 20 ++- > target-s390x/translate.c | 17 ++- > target-sh4/translate.c | 21 ++- > target-sparc/translate.c | 24 +++- > target-tricore/translate.c | 20 ++- > target-unicore32/translate.c | 16 ++- > target-xtensa/translate.c | 4 + > tcg/aarch64/tcg-target.inc.c | 7 +- > tcg/arm/tcg-target.inc.c | 8 +- > tcg/i386/tcg-target.inc.c | 8 +- > tcg/ia64/tcg-target.inc.c | 6 +- > tcg/mips/tcg-target.inc.c | 8 +- > tcg/ppc/tcg-target.inc.c | 6 +- > tcg/s390/tcg-target.inc.c | 11 +- > tcg/sparc/tcg-target.inc.c | 9 +- > tcg/tcg-op.h | 13 ++ > tcg/tcg.h | 6 +- > tcg/tci/tcg-target.inc.c | 10 +- > translate-all.c | 297 > ++++++++++++++++++++++-------------------- > 32 files changed, 470 insertions(+), 294 deletions(-) -- Alex Bennée