From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39319) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aud4N-0001nj-6o for qemu-devel@nongnu.org; Mon, 25 Apr 2016 05:44:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aud4K-0000qq-1P for qemu-devel@nongnu.org; Mon, 25 Apr 2016 05:44:43 -0400 Received: from mail-lf0-x229.google.com ([2a00:1450:4010:c07::229]:34319) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aud4J-0000qZ-MR for qemu-devel@nongnu.org; Mon, 25 Apr 2016 05:44:39 -0400 Received: by mail-lf0-x229.google.com with SMTP id j11so113163877lfb.1 for ; Mon, 25 Apr 2016 02:44:39 -0700 (PDT) References: <1461341333-19646-1-git-send-email-sergey.fedorov@linaro.org> <571D3C6B.9050407@twiddle.net> From: Sergey Fedorov Message-ID: <571DE704.9040708@gmail.com> Date: Mon, 25 Apr 2016 12:44:36 +0300 MIME-Version: 1.0 In-Reply-To: <571D3C6B.9050407@twiddle.net> Content-Type: text/plain; charset=utf-8 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: Richard Henderson , Sergey Fedorov , qemu-devel@nongnu.org Cc: =?UTF-8?Q?Alex_Benn=c3=a9e?= , Paolo Bonzini , Peter Crosthwaite 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