From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47950) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1auRi0-0004ta-3h for qemu-devel@nongnu.org; Sun, 24 Apr 2016 17:36:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1auRhw-0004mx-Ry for qemu-devel@nongnu.org; Sun, 24 Apr 2016 17:36:52 -0400 Received: from mail-qk0-x22b.google.com ([2607:f8b0:400d:c09::22b]:35291) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1auRhw-0004ml-H4 for qemu-devel@nongnu.org; Sun, 24 Apr 2016 17:36:48 -0400 Received: by mail-qk0-x22b.google.com with SMTP id q76so41639559qke.2 for ; Sun, 24 Apr 2016 14:36:48 -0700 (PDT) Sender: Richard Henderson References: <1461341333-19646-1-git-send-email-sergey.fedorov@linaro.org> From: Richard Henderson Message-ID: <571D3C6B.9050407@twiddle.net> Date: Sun, 24 Apr 2016 14:36:43 -0700 MIME-Version: 1.0 In-Reply-To: <1461341333-19646-1-git-send-email-sergey.fedorov@linaro.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 00/11] tcg: Make direct jump patching thread-safe List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Sergey Fedorov , qemu-devel@nongnu.org Cc: =?UTF-8?Q?Alex_Benn=c3=a9e?= , Sergey Fedorov , Paolo Bonzini , Peter Crosthwaite 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. r~