From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48104) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YxFUh-0003qT-Ic for qemu-devel@nongnu.org; Tue, 26 May 2015 10:06:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YxFUc-0001MG-Ap for qemu-devel@nongnu.org; Tue, 26 May 2015 10:06:11 -0400 Received: from mx1.redhat.com ([209.132.183.28]:50698) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YxFUc-0001MC-3p for qemu-devel@nongnu.org; Tue, 26 May 2015 10:06:06 -0400 Message-ID: <55647DC6.1080703@redhat.com> Date: Tue, 26 May 2015 16:05:58 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <20150525120707.1052.44580.stgit@PASHA-ISP> In-Reply-To: <20150525120707.1052.44580.stgit@PASHA-ISP> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v14 00/21] Deterministic replay core List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Pavel Dovgalyuk , 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, fred.konrad@greensocs.com On 25/05/2015 14:07, Pavel Dovgalyuk wrote: > This set of patches is related to the reverse execution and deterministic > replay of qemu execution. This implementation of deterministic replay can > be used for deterministic debugging of guest code through gdb remote > interface. > > Core set of patches does not include support for reverse debugging commands > of gdb, block devices' operations, USB replay support. > > These patches include only core function of the replay, > excluding the support for replaying serial, audio, network, and USB devices' > operations. Reverse debugging and monitor commands were also excluded to > be submitted later as separate patches. > > Execution recording writes non-deterministic events log, which can be later > used for replaying the execution anywhere and for unlimited number of times. > It also supports checkpointing for faster rewinding during reverse debugging. > Execution replaying reads the log and replays all non-deterministic events > including external input, hardware clocks, and interrupts. > > Full version of deterministic replay has the following features: > * Deterministically replays whole system execution and all contents of the memory, > state of the hadrware devices, clocks, and screen of the VM. > * Writes execution log into the file for latter replaying for multiple times > on different machines. > * Supports i386, x86_64, and ARM hardware platforms. > * Performs deterministic replay of all operations with keyboard and mouse > input devices. > * Supports auto-checkpointing for convenient reverse debugging. > > Usage of the record/replay core: > * First, record the execution, by adding the following string to the command line: > '-icount shift=7,rr=record,rrfile=replay.bin -net none'. > Block devices' images are not actually changed in the recording mode, > because all of the changes are written to the temporary overlay file. > * Then you can replay it for the multiple times by using another command > line option: '-icount shift=7,rr=replay,rrfile=replay.bin -net none' > * '-net none' option should also be specified if network replay patches > are not applied. > * Do not add any disk images to VM, because they are not supported by > the core patches. Hi Pavel, this series has reached a point where I need help from other maintainers, particularly (but not exclusively) regarding their own code. I don't see anything that stands out (that's why I asked you to remove the disks part), but it's a huge change and I don't feel comfortable "just including it" in a pull request like I did with all the preparatory changes so far. Thanks for your understanding! Paolo