From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=42184 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PVMkW-0005s5-CY for qemu-devel@nongnu.org; Wed, 22 Dec 2010 06:20:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PVMkV-0004Cf-Em for qemu-devel@nongnu.org; Wed, 22 Dec 2010 06:20:52 -0500 Received: from smtp.ispras.ru ([83.149.198.201]:36981) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PVMkV-0004CG-4b for qemu-devel@nongnu.org; Wed, 22 Dec 2010 06:20:51 -0500 Received: from PASHAISP (ispserv.ispras.ru [83.149.198.72]) by smtp.ispras.ru (Postfix) with ESMTP id A93F15D40F9 for ; Wed, 22 Dec 2010 14:14:16 +0300 (MSK) From: "Pavel Dovgaluk" Date: Wed, 22 Dec 2010 14:20:01 +0300 Message-ID: <002101cba1ca$2cae3070$860a9150$@Dovgaluk@ispras.ru> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Language: ru Subject: [Qemu-devel] Deterministic replay List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Hello. 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. To allow breaking the execution in any moment, I added flag check and exit_tb call before every instruction. But there is one problem occurred: when I make the same actions like gen_eob() function, Windows XP cannot load on emulated machine (it reboots with GPF). But when I remove two of the actions, everything is OK. These actions are the following: if (s->tb->flags & HF_INHIBIT_IRQ_MASK) { gen_helper_reset_inhibit_irq(); } if (s->tb->flags & HF_RF_MASK) { gen_helper_reset_rf(); } What are these actions for? When I remove any of them the booting process is OK. Please help me to understand interrupts mechanism or give links where to read about it. I apply my modifications to version 0.12.3 of Qemu. Please refer to it. Pavel Dovgaluk