From: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
To: 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, pavel.dovgaluk@ispras.ru,
pbonzini@redhat.com, afaerber@suse.de, fred.konrad@greensocs.com
Subject: [Qemu-devel] [RFC PATCH v8 02/21] replay: global variables and function stubs
Date: Thu, 22 Jan 2015 11:51:42 +0300 [thread overview]
Message-ID: <20150122085142.5276.86603.stgit@PASHA-ISP.def.inno> (raw)
In-Reply-To: <20150122085127.5276.53895.stgit@PASHA-ISP.def.inno>
This patch adds global variables, defines, functions declarations,
and function stubs for deterministic VM replay used by external modules.
Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
---
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;
next prev parent reply other threads:[~2015-01-22 8:51 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-22 8:51 [Qemu-devel] [RFC PATCH v8 00/21] Deterministic replay core Pavel Dovgalyuk
2015-01-22 8:51 ` [Qemu-devel] [RFC PATCH v8 01/21] i386: partial revert of interrupt poll fix Pavel Dovgalyuk
2015-01-22 8:51 ` Pavel Dovgalyuk [this message]
2015-01-29 9:02 ` [Qemu-devel] [RFC PATCH v8 02/21] replay: global variables and function stubs Paolo Bonzini
2015-01-29 23:23 ` Eric Blake
2015-01-22 8:51 ` [Qemu-devel] [RFC PATCH v8 03/21] sysemu: system functions for replay Pavel Dovgalyuk
2015-01-29 9:03 ` Paolo Bonzini
2015-01-22 8:51 ` [Qemu-devel] [RFC PATCH v8 04/21] replay: internal functions for replay log Pavel Dovgalyuk
2015-01-29 9:11 ` Paolo Bonzini
2015-01-30 12:56 ` Pavel Dovgaluk
2015-01-30 13:06 ` Paolo Bonzini
2015-01-30 13:11 ` Mark Burton
2015-01-22 8:51 ` [Qemu-devel] [RFC PATCH v8 05/21] replay: introduce mutex to protect the " Pavel Dovgalyuk
2015-01-29 9:12 ` Paolo Bonzini
2015-01-22 8:52 ` [Qemu-devel] [RFC PATCH v8 06/21] replay: introduce icount event Pavel Dovgalyuk
2015-01-29 9:14 ` Paolo Bonzini
2015-01-22 8:52 ` [Qemu-devel] [RFC PATCH v8 07/21] cpu-exec: allow temporary disabling icount Pavel Dovgalyuk
2015-01-22 8:52 ` [Qemu-devel] [RFC PATCH v8 08/21] cpu: replay instructions sequence Pavel Dovgalyuk
2015-01-29 9:32 ` Paolo Bonzini
2015-02-02 12:28 ` Pavel Dovgaluk
2015-02-02 12:38 ` Paolo Bonzini
2015-02-02 12:42 ` Pavel Dovgaluk
[not found] ` <28583.7738695138$1422880978@news.gmane.org>
2015-02-02 13:18 ` Paolo Bonzini
2015-02-16 12:26 ` Pavel Dovgaluk
[not found] ` <6071.25815372473$1424089600@news.gmane.org>
2015-02-16 12:59 ` Paolo Bonzini
2015-02-16 13:27 ` Pavel Dovgaluk
[not found] ` <8198.56250095672$1424093273@news.gmane.org>
2015-02-16 13:31 ` Paolo Bonzini
2015-02-16 13:37 ` Pavel Dovgaluk
[not found] ` <39577.5216319182$1424093895@news.gmane.org>
2015-02-16 13:53 ` Paolo Bonzini
2015-02-17 8:43 ` Pavel Dovgaluk
2015-02-17 10:58 ` Paolo Bonzini
2015-02-17 11:35 ` Pavel Dovgaluk
2015-02-17 12:21 ` Paolo Bonzini
2015-01-22 8:52 ` [Qemu-devel] [RFC PATCH v8 09/21] replay: interrupts and exceptions Pavel Dovgalyuk
2015-01-29 9:44 ` Paolo Bonzini
2015-02-02 13:50 ` Pavel Dovgaluk
[not found] ` <23862.806443549$1422885088@news.gmane.org>
2015-02-02 14:18 ` Paolo Bonzini
2015-01-22 8:52 ` [Qemu-devel] [RFC PATCH v8 10/21] replay: asynchronous events infrastructure Pavel Dovgalyuk
2015-01-29 10:06 ` Paolo Bonzini
2015-01-22 8:52 ` [Qemu-devel] [RFC PATCH v8 11/21] replay: recording and replaying clock ticks Pavel Dovgalyuk
2015-01-29 10:16 ` Paolo Bonzini
2015-02-03 10:51 ` Pavel Dovgaluk
2015-02-03 11:04 ` Paolo Bonzini
2015-02-03 11:23 ` Pavel Dovgaluk
2015-02-03 11:59 ` Paolo Bonzini
2015-01-22 8:52 ` [Qemu-devel] [RFC PATCH v8 12/21] replay: recording and replaying different timers Pavel Dovgalyuk
2015-01-29 10:20 ` Paolo Bonzini
2015-02-03 14:05 ` Pavel Dovgaluk
2015-02-04 15:20 ` Paolo Bonzini
2015-01-22 8:52 ` [Qemu-devel] [RFC PATCH v8 13/21] replay: shutdown event Pavel Dovgalyuk
2015-01-29 10:20 ` Paolo Bonzini
2015-01-22 8:52 ` [Qemu-devel] [RFC PATCH v8 14/21] replay: checkpoints Pavel Dovgalyuk
2015-01-30 11:05 ` Paolo Bonzini
2015-01-22 8:52 ` [Qemu-devel] [RFC PATCH v8 15/21] aio: replace stack of bottom halves with queue Pavel Dovgalyuk
2015-01-30 10:43 ` Paolo Bonzini
2015-01-22 8:53 ` [Qemu-devel] [RFC PATCH v8 16/21] replay: bottom halves Pavel Dovgalyuk
2015-01-30 10:49 ` Paolo Bonzini
2015-02-11 13:03 ` Pavel Dovgaluk
2015-01-22 8:53 ` [Qemu-devel] [RFC PATCH v8 17/21] replay: replay aio requests Pavel Dovgalyuk
2015-01-30 11:07 ` Paolo Bonzini
2015-01-22 8:53 ` [Qemu-devel] [RFC PATCH v8 18/21] replay: thread pool Pavel Dovgalyuk
2015-01-30 11:13 ` Paolo Bonzini
2015-01-22 8:53 ` [Qemu-devel] [RFC PATCH v8 19/21] replay: initialization and deinitialization Pavel Dovgalyuk
2015-01-30 11:02 ` Paolo Bonzini
2015-02-09 12:59 ` Pavel Dovgaluk
2015-02-09 13:01 ` Paolo Bonzini
2015-01-22 8:53 ` [Qemu-devel] [RFC PATCH v8 20/21] replay: command line options Pavel Dovgalyuk
2015-01-30 10:54 ` Paolo Bonzini
2015-02-09 12:15 ` Pavel Dovgaluk
2015-02-09 12:26 ` Paolo Bonzini
2015-02-12 9:12 ` Pavel Dovgaluk
2015-02-12 14:12 ` Paolo Bonzini
2015-01-22 8:53 ` [Qemu-devel] [RFC PATCH v8 21/21] replay: recording of the user input Pavel Dovgalyuk
2015-01-30 11:23 ` Paolo Bonzini
2015-02-12 7:43 ` Pavel Dovgaluk
2015-02-12 8:08 ` Pavel Dovgaluk
2015-02-12 14:41 ` Paolo Bonzini
2015-01-28 11:45 ` [Qemu-devel] [RFC PATCH v8 00/21] Deterministic replay core Pavel Dovgaluk
[not found] ` <28048.5671981753$1422445570@news.gmane.org>
2015-01-29 10:21 ` Paolo Bonzini
2015-01-30 11:25 ` Paolo Bonzini
2015-02-02 14:30 ` Paolo Bonzini
2015-02-03 6:47 ` Pavel Dovgaluk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150122085142.5276.86603.stgit@PASHA-ISP.def.inno \
--to=pavel.dovgaluk@ispras.ru \
--cc=afaerber@suse.de \
--cc=alex.bennee@linaro.org \
--cc=batuzovk@ispras.ru \
--cc=fred.konrad@greensocs.com \
--cc=maria.klimushenkova@ispras.ru \
--cc=mark.burton@greensocs.com \
--cc=pbonzini@redhat.com \
--cc=peter.crosthwaite@xilinx.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=real@ispras.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).