From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52789) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YGm9X-00034W-Ka for qemu-devel@nongnu.org; Thu, 29 Jan 2015 05:16:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YGm9U-00009d-E7 for qemu-devel@nongnu.org; Thu, 29 Jan 2015 05:16:47 -0500 Received: from mx1.redhat.com ([209.132.183.28]:34741) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YGm9U-00009S-6K for qemu-devel@nongnu.org; Thu, 29 Jan 2015 05:16:44 -0500 Message-ID: <54C9F730.8090709@redhat.com> Date: Thu, 29 Jan 2015 10:02:40 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <20150122085127.5276.53895.stgit@PASHA-ISP.def.inno> <20150122085142.5276.86603.stgit@PASHA-ISP.def.inno> In-Reply-To: <20150122085142.5276.86603.stgit@PASHA-ISP.def.inno> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC PATCH v8 02/21] replay: global variables and function stubs 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, afaerber@suse.de, fred.konrad@greensocs.com On 22/01/2015 09:51, Pavel Dovgalyuk wrote: > This patch adds global variables, defines, functions declarations, > and function stubs for deterministic VM replay used by external modules. > > Signed-off-by: Pavel Dovgalyuk > --- > Makefile.target | 1 + > qapi-schema.json | 18 ++++++++++++++++++ > replay/Makefile.objs | 1 + > replay/replay.c | 14 ++++++++++++++ > replay/replay.h | 19 +++++++++++++++++++ > stubs/Makefile.objs | 1 + > stubs/replay.c | 3 +++ > 7 files changed, 57 insertions(+), 0 deletions(-) > create mode 100755 replay/Makefile.objs > create mode 100755 replay/replay.c > create mode 100755 replay/replay.h > create mode 100755 stubs/replay.c > > diff --git a/Makefile.target b/Makefile.target > index e9ff1ee..a45378f 100644 > --- a/Makefile.target > +++ b/Makefile.target > @@ -83,6 +83,7 @@ all: $(PROGS) stap > ######################################################### > # cpu emulator library > obj-y = exec.o translate-all.o cpu-exec.o > +obj-y += replay/ > obj-y += tcg/tcg.o tcg/optimize.o > obj-$(CONFIG_TCG_INTERPRETER) += tci.o > obj-$(CONFIG_TCG_INTERPRETER) += disas/tci.o > diff --git a/qapi-schema.json b/qapi-schema.json > index fbfc52f..7e3177f 100644 > --- a/qapi-schema.json > +++ b/qapi-schema.json > @@ -3523,3 +3523,21 @@ > # Since: 2.1 > ## > { 'command': 'rtc-reset-reinjection' } > + > +## > +# ReplayMode: > +# > +# Mode of the replay subsystem. > +# > +# @none: normal execution mode. Replay or record are not enabled. > +# > +# @record: record mode. All non-deterministic data is written into the > +# replay log. > +# > +# @play: replay mode. Non-deterministic data required for system execution > +# is read from the log. > +# > +# Since: 2.3 > +## > +{ 'enum': 'ReplayMode', > + 'data': [ 'none', 'record', 'play' ] } > diff --git a/replay/Makefile.objs b/replay/Makefile.objs > new file mode 100755 > index 0000000..7ea860f > --- /dev/null > +++ b/replay/Makefile.objs > @@ -0,0 +1 @@ > +obj-y += replay.o > diff --git a/replay/replay.c b/replay/replay.c > new file mode 100755 > index 0000000..5ce066f > --- /dev/null > +++ b/replay/replay.c > @@ -0,0 +1,14 @@ > +/* > + * replay.c > + * > + * Copyright (c) 2010-2015 Institute for System Programming > + * of the Russian Academy of Sciences. > + * > + * This work is licensed under the terms of the GNU GPL, version 2 or later. > + * See the COPYING file in the top-level directory. > + * > + */ > + > +#include "replay.h" > + > +ReplayMode replay_mode = REPLAY_MODE_NONE; > diff --git a/replay/replay.h b/replay/replay.h > new file mode 100755 > index 0000000..d6b73c3 > --- /dev/null > +++ b/replay/replay.h > @@ -0,0 +1,19 @@ > +#ifndef REPLAY_H > +#define REPLAY_H > + > +/* > + * replay.h > + * > + * Copyright (c) 2010-2015 Institute for System Programming > + * of the Russian Academy of Sciences. > + * > + * This work is licensed under the terms of the GNU GPL, version 2 or later. > + * See the COPYING file in the top-level directory. > + * > + */ > + > +#include "qapi-types.h" > + > +extern ReplayMode replay_mode; > + > +#endif > diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs > index 5e347d0..45a6c71 100644 > --- a/stubs/Makefile.objs > +++ b/stubs/Makefile.objs > @@ -27,6 +27,7 @@ stub-obj-y += notify-event.o > stub-obj-y += pci-drive-hot-add.o > stub-obj-$(CONFIG_SPICE) += qemu-chr-open-spice.o > stub-obj-y += qtest.o > +stub-obj-y += replay.o > stub-obj-y += reset.o > stub-obj-y += runstate-check.o > stub-obj-y += set-fd-handler.o > diff --git a/stubs/replay.c b/stubs/replay.c > new file mode 100755 > index 0000000..563c777 > --- /dev/null > +++ b/stubs/replay.c > @@ -0,0 +1,3 @@ > +#include "replay/replay.h" > + > +ReplayMode replay_mode; > Reviewed-by: Paolo Bonzini