diff mbox series

[v9,10/21] qapi: introduce replay.json for record/replay-related stuff

Message ID 154703593746.13472.3886549854409661470.stgit@pasha-VirtualBox (mailing list archive)
State New, archived
Headers show
Series Fixing record/replay and adding reverse debugging | expand

Commit Message

Pavel Dovgalyuk Jan. 9, 2019, 12:12 p.m. UTC
This patch adds replay.json file. It will be
used for adding record/replay-related data structures and commands.

Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
---
 MAINTAINERS             |    1 +
 Makefile.objs           |    4 ++--
 include/sysemu/replay.h |    1 +
 qapi/misc.json          |   18 ------------------
 qapi/qapi-schema.json   |    1 +
 qapi/replay.json        |   26 ++++++++++++++++++++++++++
 6 files changed, 31 insertions(+), 20 deletions(-)
 create mode 100644 qapi/replay.json

Comments

Markus Armbruster Jan. 10, 2019, 10:34 a.m. UTC | #1
Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru> writes:

> This patch adds replay.json file. It will be
> used for adding record/replay-related data structures and commands.
>
> Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
> ---
>  MAINTAINERS             |    1 +
>  Makefile.objs           |    4 ++--
>  include/sysemu/replay.h |    1 +
>  qapi/misc.json          |   18 ------------------
>  qapi/qapi-schema.json   |    1 +
>  qapi/replay.json        |   26 ++++++++++++++++++++++++++
>  6 files changed, 31 insertions(+), 20 deletions(-)
>  create mode 100644 qapi/replay.json
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 0bfd95a..7b0a1bc 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2122,6 +2122,7 @@ F: net/filter-replay.c
>  F: include/sysemu/replay.h
>  F: docs/replay.txt
>  F: stubs/replay.c
> +F: qapi/replay.json
>  
>  IOVA Tree
>  M: Peter Xu <peterx@redhat.com>
> diff --git a/Makefile.objs b/Makefile.objs
> index 4561159..8164b22 100644
> --- a/Makefile.objs
> +++ b/Makefile.objs
> @@ -1,6 +1,6 @@
>  QAPI_MODULES = block-core block char common crypto introspect job migration
> -QAPI_MODULES += misc net rdma rocker run-state sockets tpm trace transaction
> -QAPI_MODULES += ui
> +QAPI_MODULES += misc net rdma replay rocker run-state sockets tpm trace
> +QAPI_MODULES += transaction ui
>  
>  #######################################################################
>  # Common libraries for tools and emulators
> diff --git a/include/sysemu/replay.h b/include/sysemu/replay.h
> index b3f593f..2054296 100644
> --- a/include/sysemu/replay.h
> +++ b/include/sysemu/replay.h
> @@ -13,6 +13,7 @@
>   */
>  
>  #include "sysemu.h"
> +#include "qapi/qapi-types-replay.h"
>  #include "qapi/qapi-types-misc.h"

I believe you can drop qapi/qapi-types-misc.h now.

>  #include "qapi/qapi-types-ui.h"
>  
> diff --git a/qapi/misc.json b/qapi/misc.json
> index 24d20a8..e5e0bea 100644
> --- a/qapi/misc.json
> +++ b/qapi/misc.json
> @@ -3125,24 +3125,6 @@
>    'data': { 'offset': 'int' } }
>  
>  ##
> -# @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.5
> -##
> -{ 'enum': 'ReplayMode',
> -  'data': [ 'none', 'record', 'play' ] }
> -
> -##
>  # @xen-load-devices-state:
>  #
>  # Load the state of all devices from file. The RAM and the block devices
> diff --git a/qapi/qapi-schema.json b/qapi/qapi-schema.json
> index 3bbdfce..b85fd04 100644
> --- a/qapi/qapi-schema.json
> +++ b/qapi/qapi-schema.json
> @@ -95,3 +95,4 @@
   # Documentation generated with qapi-gen.py is in source order, with
   # included sub-schemas inserted at the first include directive
   # (subsequent include directives have no effect).  To get a sane and
   # stable order, it's best to include each sub-schema just once, or
   # include it first right here.
[...]
>  { 'include': 'trace.json' }
>  { 'include': 'introspect.json' }
>  { 'include': 'misc.json' }
> +{ 'include': 'replay.json' }

I doubt this the best spot for replay stuff in the generated
documentation.

Is there another chapter you'd consider related?

> diff --git a/qapi/replay.json b/qapi/replay.json
> new file mode 100644
> index 0000000..9e13551
> --- /dev/null
> +++ b/qapi/replay.json
> @@ -0,0 +1,26 @@
> +# -*- Mode: Python -*-
> +#
> +
> +##
> +# = Record/replay
> +##
> +
> +{ 'include': 'common.json' }
> +
> +##
> +# @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.5
> +##
> +{ 'enum': 'ReplayMode',
> +  'data': [ 'none', 'record', 'play' ] }
Pavel Dovgalyuk Jan. 14, 2019, 8:31 a.m. UTC | #2
> From: Markus Armbruster [mailto:armbru@redhat.com]
> Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru> writes:
> 
> > This patch adds replay.json file. It will be
> > used for adding record/replay-related data structures and commands.
> >
> > Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
> > ---
> >  MAINTAINERS             |    1 +
> >  Makefile.objs           |    4 ++--
> >  include/sysemu/replay.h |    1 +
> >  qapi/misc.json          |   18 ------------------
> >  qapi/qapi-schema.json   |    1 +
> >  qapi/replay.json        |   26 ++++++++++++++++++++++++++
> >  6 files changed, 31 insertions(+), 20 deletions(-)
> >  create mode 100644 qapi/replay.json
> >
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index 0bfd95a..7b0a1bc 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -2122,6 +2122,7 @@ F: net/filter-replay.c
> >  F: include/sysemu/replay.h
> >  F: docs/replay.txt
> >  F: stubs/replay.c
> > +F: qapi/replay.json
> >
> >  IOVA Tree
> >  M: Peter Xu <peterx@redhat.com>
> > diff --git a/Makefile.objs b/Makefile.objs
> > index 4561159..8164b22 100644
> > --- a/Makefile.objs
> > +++ b/Makefile.objs
> > @@ -1,6 +1,6 @@
> >  QAPI_MODULES = block-core block char common crypto introspect job migration
> > -QAPI_MODULES += misc net rdma rocker run-state sockets tpm trace transaction
> > -QAPI_MODULES += ui
> > +QAPI_MODULES += misc net rdma replay rocker run-state sockets tpm trace
> > +QAPI_MODULES += transaction ui
> >
> >  #######################################################################
> >  # Common libraries for tools and emulators
> > diff --git a/include/sysemu/replay.h b/include/sysemu/replay.h
> > index b3f593f..2054296 100644
> > --- a/include/sysemu/replay.h
> > +++ b/include/sysemu/replay.h
> > @@ -13,6 +13,7 @@
> >   */
> >
> >  #include "sysemu.h"
> > +#include "qapi/qapi-types-replay.h"
> >  #include "qapi/qapi-types-misc.h"
> 
> I believe you can drop qapi/qapi-types-misc.h now.

Missed this one, thanks.

> 
> >  #include "qapi/qapi-types-ui.h"
> >
> > diff --git a/qapi/misc.json b/qapi/misc.json
> > index 24d20a8..e5e0bea 100644
> > --- a/qapi/misc.json
> > +++ b/qapi/misc.json
> > @@ -3125,24 +3125,6 @@
> >    'data': { 'offset': 'int' } }
> >
> >  ##
> > -# @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.5
> > -##
> > -{ 'enum': 'ReplayMode',
> > -  'data': [ 'none', 'record', 'play' ] }
> > -
> > -##
> >  # @xen-load-devices-state:
> >  #
> >  # Load the state of all devices from file. The RAM and the block devices
> > diff --git a/qapi/qapi-schema.json b/qapi/qapi-schema.json
> > index 3bbdfce..b85fd04 100644
> > --- a/qapi/qapi-schema.json
> > +++ b/qapi/qapi-schema.json
> > @@ -95,3 +95,4 @@
>    # Documentation generated with qapi-gen.py is in source order, with
>    # included sub-schemas inserted at the first include directive
>    # (subsequent include directives have no effect).  To get a sane and
>    # stable order, it's best to include each sub-schema just once, or
>    # include it first right here.
> [...]
> >  { 'include': 'trace.json' }
> >  { 'include': 'introspect.json' }
> >  { 'include': 'misc.json' }
> > +{ 'include': 'replay.json' }
> 
> I doubt this the best spot for replay stuff in the generated
> documentation.
> 
> Is there another chapter you'd consider related?

Do you mean, that replay should be located near some other topic?
I don't think, that it related to anything.
But I can put replay above misc, because it related to one concrete topic.

Pavel Dovgalyuk
diff mbox series

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index 0bfd95a..7b0a1bc 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2122,6 +2122,7 @@  F: net/filter-replay.c
 F: include/sysemu/replay.h
 F: docs/replay.txt
 F: stubs/replay.c
+F: qapi/replay.json
 
 IOVA Tree
 M: Peter Xu <peterx@redhat.com>
diff --git a/Makefile.objs b/Makefile.objs
index 4561159..8164b22 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -1,6 +1,6 @@ 
 QAPI_MODULES = block-core block char common crypto introspect job migration
-QAPI_MODULES += misc net rdma rocker run-state sockets tpm trace transaction
-QAPI_MODULES += ui
+QAPI_MODULES += misc net rdma replay rocker run-state sockets tpm trace
+QAPI_MODULES += transaction ui
 
 #######################################################################
 # Common libraries for tools and emulators
diff --git a/include/sysemu/replay.h b/include/sysemu/replay.h
index b3f593f..2054296 100644
--- a/include/sysemu/replay.h
+++ b/include/sysemu/replay.h
@@ -13,6 +13,7 @@ 
  */
 
 #include "sysemu.h"
+#include "qapi/qapi-types-replay.h"
 #include "qapi/qapi-types-misc.h"
 #include "qapi/qapi-types-ui.h"
 
diff --git a/qapi/misc.json b/qapi/misc.json
index 24d20a8..e5e0bea 100644
--- a/qapi/misc.json
+++ b/qapi/misc.json
@@ -3125,24 +3125,6 @@ 
   'data': { 'offset': 'int' } }
 
 ##
-# @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.5
-##
-{ 'enum': 'ReplayMode',
-  'data': [ 'none', 'record', 'play' ] }
-
-##
 # @xen-load-devices-state:
 #
 # Load the state of all devices from file. The RAM and the block devices
diff --git a/qapi/qapi-schema.json b/qapi/qapi-schema.json
index 3bbdfce..b85fd04 100644
--- a/qapi/qapi-schema.json
+++ b/qapi/qapi-schema.json
@@ -95,3 +95,4 @@ 
 { 'include': 'trace.json' }
 { 'include': 'introspect.json' }
 { 'include': 'misc.json' }
+{ 'include': 'replay.json' }
diff --git a/qapi/replay.json b/qapi/replay.json
new file mode 100644
index 0000000..9e13551
--- /dev/null
+++ b/qapi/replay.json
@@ -0,0 +1,26 @@ 
+# -*- Mode: Python -*-
+#
+
+##
+# = Record/replay
+##
+
+{ 'include': 'common.json' }
+
+##
+# @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.5
+##
+{ 'enum': 'ReplayMode',
+  'data': [ 'none', 'record', 'play' ] }