From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34557) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YDBFS-0001gI-06 for qemu-devel@nongnu.org; Mon, 19 Jan 2015 07:16:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YDBFJ-0007IX-83 for qemu-devel@nongnu.org; Mon, 19 Jan 2015 07:16:01 -0500 Received: from mx1.redhat.com ([209.132.183.28]:32947) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YDBFJ-0007IS-1S for qemu-devel@nongnu.org; Mon, 19 Jan 2015 07:15:53 -0500 Message-ID: <54BCF55D.7040607@redhat.com> Date: Mon, 19 Jan 2015 13:15:25 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <20150112115944.3504.66763.stgit@PASHA-ISP> <20150112120054.3504.35220.stgit@PASHA-ISP> <54B3BA89.6080705@redhat.com> <000501d02f12$61177b30$23467190$@Dovgaluk@ispras.ru> <54B4E79C.5010201@redhat.com> <000101d03162$f2d2ed50$d878c7f0$@Dovgaluk@ispras.ru> <54BCEFD1.5040702@redhat.com> <000c01d033df$ece29420$c6a7bc60$@Dovgaluk@ispras.ru> In-Reply-To: <000c01d033df$ece29420$c6a7bc60$@Dovgaluk@ispras.ru> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC PATCH v7 12/21] replay: recording and replaying clock ticks List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Pavel Dovgaluk , qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, peter.crosthwaite@xilinx.com, alex.bennee@linaro.org, mark.burton@greensocs.com, real@ispras.ru, batuzovk@ispras.ru, maria.klimushenkova@ispras.ru, afaerber@suse.de, fred.konrad@greensocs.com On 19/01/2015 13:03, Pavel Dovgaluk wrote: > It will work for protecting the events list (I've already did this). > But that will not work for protecting the log file. > replay_run_event can write some data to the log. And also some other function like replay_checkpoint > can also write to the log simultaneously (if we will remove the global mutex). > That's why we cannot simply replace the global mutex with some kind of local one. That's why you have to document very well the architecture and the locking policy. For example, why can't replay_run_event (or something that it calls) take the replay lock locally, when it writes to the log? If you do not document the architecture, we run in circles with me asking possibly stupid questions and you thinking that my questions are stupid. :) Paolo