On 25/04/16 00:36, Richard Henderson wrote: > On 04/22/2016 09:08 AM, Sergey Fedorov wrote: >> 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 >> atomically and concurrently executed code is guaranteed to be >> consistent. >> >> This patch series fixes all supported TCG targets which use 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-2 >> >> Summary of changes in v2: >> * Take out mistakingly pulled patches [PATCH 01/11] and [PATCH 02/11] >> * Two new patches to add some handy macros for alignment >> [PATCH v2 01/11] and [PATCH v2 02/11] >> * Use new alignment macros instead of open-coding >> * Use i386 tcg_out_nopn() implementation suggested by Richard >> Henderson; >> rework alignment checking and gap calculation in [PATCH v2 05/11] >> * Clean up reloc_pc24_atomic() in [PATCH v2 07/11] >> * Use tcg_debug_assert() instead of assert() >> * Use deposit32() in [PATCH v2 09/11] >> * s/atomic_write/atomic_set/ in [PATCH v2 10/11] >> * Minor rewording in [PATCH v2 11/11] > > Applied all to tcg-next. I applied the mips one-liner follow-up at > the same time.
Cool, thanks! :) Kind regards, Sergey