From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60929) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTQpe-0002LY-Fl for qemu-devel@nongnu.org; Wed, 10 Feb 2016 04:13:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aTQpZ-0000lz-NI for qemu-devel@nongnu.org; Wed, 10 Feb 2016 04:13:06 -0500 Received: from mail.ispras.ru ([83.149.199.45]:42863) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTQpZ-0000lJ-FC for qemu-devel@nongnu.org; Wed, 10 Feb 2016 04:13:01 -0500 From: Pavel Dovgalyuk Date: Wed, 10 Feb 2016 12:13:00 +0300 Message-ID: <20160210091259.10024.74767.stgit@PASHA-ISP> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] [PATCH v2 0/4] Deterministic replay extensions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: edgar.iglesias@xilinx.com, peter.maydell@linaro.org, igor.rubinov@gmail.com, alex.bennee@linaro.org, mark.burton@greensocs.com, real@ispras.ru, hines@cert.org, batuzovk@ispras.ru, maria.klimushenkova@ispras.ru, pavel.dovgaluk@ispras.ru, pbonzini@redhat.com, kwolf@redhat.com, stefanha@redhat.com, fred.konrad@greensocs.com This set of patches is related to the reverse execution and deterministic replay of qemu execution. It includes recording and replaying of serial devices and block devices operations. With these patches one can record and deterministically replay behavior of the system with connected disk drives and serial communication ports (e.g., telnet terminal). Patches for deterministic replay of the block devices intercept calls of blk_aio_ functions. These functions are used only by virtual devices. Replay cannot be embedded as block driver functions layer, because these functions are also used for qemu internal operations (e.g., migration). v2 changes: - removed obsolete call of qemu_clock_warp - fixed record/replay of aio_cancel - simplified call sequence for blk_aio_ functions in non-replay mode (as suggested by Kevin Wolf) --- Pavel Dovgalyuk (4): replay: character devices icount: remove obsolete warp call replay: introduce new checkpoint for icount warp replay: introduce block devices record/replay block/block-backend.c | 54 ++++++++++++-- cpus.c | 10 +-- gdbstub.c | 2 - include/qemu/timer.h | 3 + include/sysemu/char.h | 26 +++++++ include/sysemu/replay.h | 43 ++++++++++++ main-loop.c | 2 - qemu-char.c | 56 +++++++++++++-- qemu-timer.c | 2 - replay/Makefile.objs | 2 + replay/replay-block.c | 172 ++++++++++++++++++++++++++++++++++++++++++++++ replay/replay-char.c | 97 ++++++++++++++++++++++++++ replay/replay-events.c | 68 +++++++++++++++++- replay/replay-internal.h | 39 ++++++++++ replay/replay.c | 25 ++++++- stubs/clock-warp.c | 2 - stubs/replay.c | 50 +++++++++++++ 17 files changed, 622 insertions(+), 31 deletions(-) create mode 100755 replay/replay-block.c create mode 100755 replay/replay-char.c -- Pavel Dovgalyuk