[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH v8 02/21] replay: global variables and funct
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [RFC PATCH v8 02/21] replay: global variables and function stubs |
Date: |
Thu, 29 Jan 2015 10:02:40 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 |
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 <address@hidden>
> ---
> 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 <address@hidden>
- [Qemu-devel] [RFC PATCH v8 00/21] Deterministic replay core, Pavel Dovgalyuk, 2015/01/22
- [Qemu-devel] [RFC PATCH v8 01/21] i386: partial revert of interrupt poll fix, Pavel Dovgalyuk, 2015/01/22
- [Qemu-devel] [RFC PATCH v8 02/21] replay: global variables and function stubs, Pavel Dovgalyuk, 2015/01/22
- [Qemu-devel] [RFC PATCH v8 03/21] sysemu: system functions for replay, Pavel Dovgalyuk, 2015/01/22
- [Qemu-devel] [RFC PATCH v8 05/21] replay: introduce mutex to protect the replay log, Pavel Dovgalyuk, 2015/01/22
- [Qemu-devel] [RFC PATCH v8 04/21] replay: internal functions for replay log, Pavel Dovgalyuk, 2015/01/22