From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41988) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bkRkQ-0007YF-AH for qemu-devel@nongnu.org; Thu, 15 Sep 2016 04:10:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bkRkK-0002Rx-9h for qemu-devel@nongnu.org; Thu, 15 Sep 2016 04:10:17 -0400 Received: from mail.ispras.ru ([83.149.199.45]:35650) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bkRkK-0002MO-1T for qemu-devel@nongnu.org; Thu, 15 Sep 2016 04:10:12 -0400 From: Pavel Dovgalyuk Date: Thu, 15 Sep 2016 11:09:53 +0300 Message-ID: <20160915080952.3124.19133.stgit@PASHA-ISP> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] [PATCH v2 00/11] icount/replay additions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, mst@redhat.com, jasowang@redhat.com, quintela@redhat.com, agraf@suse.de, pbonzini@redhat.com, david@gibson.dropbear.id.au This set of patches includes several fixes for replay and adds network record/replay for network devices. It also makes possible saving/restoring vmstate in replay mode. Record and replay for network interactions is performed with the network filter. Each backend must have its own instance of the replay filter as follows: -netdev user,id=net1 -device rtl8139,netdev=net1 -object filter-replay,id=replay,netdev=net1 This patches add overlay option for blkreplay block driver. Using persistent overlay file allows saving and reloading VM snapshots in replay mode. Replay mechanism automatically creates one snapshot named 'replay_init' to allow rewinding execution while replaying. Overlay file may be specified as follows: -drive file=disk.qcow,if=none,id=img-direct -drive driver=blkreplay,if=none,image=img-direct,overlay=overlay.qcow2,id=img-blkreplay -device ide-hd,drive=img-blkreplay This set of patches includes fixes and additions for icount and record/replay implementation: - Fixing icount processing on exceptions in PPC - Enabling VM start/stop in replay mode - Adding network interaction record/replay - Adding overlay option for blkreplay filter - Fixes of the vmstate for several virtual devices --- Pavel Dovgalyuk (11): target-ppc: exceptions handling in icount mode record/replay: add network support block: set snapshot option for block devices in blkreplay module block: don't make snapshots for filters replay: save/load initial state replay: move internal data to the structure replay: vmstate for replay module replay: allow replay stopping and restarting kvmvapic: fix state change handler pcspk: adding vmstate for save/restore integratorcp: adding vmstate for save/restore block/blkreplay.c | 132 +++++++++++++++++++++++++++-- block/snapshot.c | 3 + cpus.c | 1 docs/replay.txt | 22 +++++ hw/arm/integratorcp.c | 62 ++++++++++++++ hw/audio/pcspk.c | 17 +++- hw/i386/kvmvapic.c | 1 include/sysemu/replay.h | 26 ++++++ net/Makefile.objs | 1 net/filter-replay.c | 90 ++++++++++++++++++++ replay/Makefile.objs | 2 replay/replay-events.c | 21 ++++- replay/replay-internal.c | 19 ++-- replay/replay-internal.h | 26 +++++- replay/replay-net.c | 110 ++++++++++++++++++++++++ replay/replay-snapshot.c | 72 ++++++++++++++++ replay/replay-time.c | 2 replay/replay.c | 17 ++-- stubs/replay.c | 5 + target-ppc/cpu.h | 3 + target-ppc/excp_helper.c | 38 ++++++-- target-ppc/fpu_helper.c | 192 ++++++++++++++++++++++-------------------- target-ppc/helper.h | 1 target-ppc/mem_helper.c | 6 + target-ppc/misc_helper.c | 8 +- target-ppc/mmu-hash64.c | 12 +-- target-ppc/mmu_helper.c | 18 ++-- target-ppc/timebase_helper.c | 21 ++--- target-ppc/translate.c | 76 +---------------- vl.c | 9 ++ 30 files changed, 768 insertions(+), 245 deletions(-) create mode 100644 net/filter-replay.c create mode 100644 replay/replay-net.c create mode 100644 replay/replay-snapshot.c -- Pavel Dovgalyuk