From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=56124 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PVO32-000740-DP for qemu-devel@nongnu.org; Wed, 22 Dec 2010 07:44:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PVO30-00005w-UY for qemu-devel@nongnu.org; Wed, 22 Dec 2010 07:44:04 -0500 Received: from smtp.ispras.ru ([83.149.198.201]:37307) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PVO30-00005B-Nt for qemu-devel@nongnu.org; Wed, 22 Dec 2010 07:44:02 -0500 From: "Pavel Dovgaluk" References: <002101cba1ca$2cae3070$860a9150$@Dovgaluk@ispras.ru> <201012221235.14145.paul@codesourcery.com> In-Reply-To: <201012221235.14145.paul@codesourcery.com> Subject: RE: [Qemu-devel] Deterministic replay Date: Wed, 22 Dec 2010 15:43:12 +0300 Message-ID: <002501cba1d5$cbe01f40$63a05dc0$@Dovgaluk@ispras.ru> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Language: ru List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: 'Paul Brook' , qemu-devel@nongnu.org > > I am working on implementation of deteministic execution replay > technology > > for Qemu. It should be similar to VMWare's replay debugging. > > > > To make alarm timer (which invokes host_alarm_handler function) > > determinisic, I changed it's behavior: it sets flag, that execution > should > > be stopped and this flag is checked before every instruction in the > > translated code. > > You don't need to do this. A much better solution is to not use the > host timer > at all. See -icount. Thank you for your reply. I know, that there is a virtual timers, that are enabled by -icount option and can be used to get rid of host timers usage. But the problem is different - I need to synchronize alarm thread, which breaks the execution of guest code to allow processing interrupts and interaction with VNC/GDB/... Events caused by alarm thread are non-deterministic and asynchronous. To save these events in the execution log (for latter replay) I need to synchronize them with execution of guest code. The way which I am using for it is allowing execution stop at any point of the guest code. Pavel Dovgaluk