diff mbox series

[v2,02/12] simpletrace: Annotate magic constants from QEMU code

Message ID 20230502092339.27341-3-mads@ynddal.dk (mailing list archive)
State New, archived
Headers show
Series simpletrace: refactor and general improvements | expand

Commit Message

Mads Ynddal May 2, 2023, 9:23 a.m. UTC
From: Mads Ynddal <m.ynddal@samsung.com>

It wasn't clear where the constants and structs came from, so I added
comments to help.

Signed-off-by: Mads Ynddal <m.ynddal@samsung.com>
---
 scripts/simpletrace.py | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

Comments

Stefan Hajnoczi May 9, 2023, 2:34 p.m. UTC | #1
On Tue, May 02, 2023 at 11:23:29AM +0200, Mads Ynddal wrote:
> From: Mads Ynddal <m.ynddal@samsung.com>
> 
> It wasn't clear where the constants and structs came from, so I added
> comments to help.
> 
> Signed-off-by: Mads Ynddal <m.ynddal@samsung.com>
> ---
>  scripts/simpletrace.py | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/scripts/simpletrace.py b/scripts/simpletrace.py
> index 9211caaec1..7ba805443d 100755
> --- a/scripts/simpletrace.py
> +++ b/scripts/simpletrace.py
> @@ -15,15 +15,15 @@
>  from tracetool import read_events, Event
>  from tracetool.backend.simple import is_string
>  
> -header_event_id = 0xffffffffffffffff
> -header_magic    = 0xf2b177cb0aa429b4
> -dropped_event_id = 0xfffffffffffffffe
> +header_event_id = 0xffffffffffffffff # trace/simple.c::HEADER_EVENT_ID
> +header_magic    = 0xf2b177cb0aa429b4 # trace/simple.c::HEADER_MAGIC
> +dropped_event_id = 0xfffffffffffffffe # trace/simple.c::DROPPED_EVENT_ID
>  
> -record_type_mapping = 0
> -record_type_event = 1
> +record_type_mapping = 0 # trace/simple.c::TRACE_RECORD_TYPE_MAPPING
> +record_type_event = 1 # trace/simple.c::TRACE_RECORD_TYPE_EVENT
>  
> -log_header_fmt = '=QQQ'
> -rec_header_fmt = '=QQII'
> +log_header_fmt = '=QQQ' # trace/simple.c::TraceLogHeader
> +rec_header_fmt = '=QQII' # trace/simple.c::TraceRecord

From my reply to v1 of this patch series:

This is fragile since this information will be outdated if the C source
code changes (e.g. renaming files or variables).

Instead I would add the following comment:

  # This is the binary format that the QEMU "simple" trace backend
  # emits. There is no specification documentation because the format is
  # not guaranteed to be stable. Trace files must be parsed with the
  # same trace-events-all file and the same simpletrace.py file that
  # QEMU was built with.

I hope that clarifies the scope of the binary format and someone wishing
to look into the format would then know to look at the "simple" trace
backend.

Stefan
Mads Ynddal May 15, 2023, 6:51 a.m. UTC | #2
> 
> From my reply to v1 of this patch series:
> 
> This is fragile since this information will be outdated if the C source
> code changes (e.g. renaming files or variables).
> 
> Instead I would add the following comment:
> 
>  # This is the binary format that the QEMU "simple" trace backend
>  # emits. There is no specification documentation because the format is
>  # not guaranteed to be stable. Trace files must be parsed with the
>  # same trace-events-all file and the same simpletrace.py file that
>  # QEMU was built with.
> 
> I hope that clarifies the scope of the binary format and someone wishing
> to look into the format would then know to look at the "simple" trace
> backend.
> 
> Stefan


I must have missed that. I'll add this too.
diff mbox series

Patch

diff --git a/scripts/simpletrace.py b/scripts/simpletrace.py
index 9211caaec1..7ba805443d 100755
--- a/scripts/simpletrace.py
+++ b/scripts/simpletrace.py
@@ -15,15 +15,15 @@ 
 from tracetool import read_events, Event
 from tracetool.backend.simple import is_string
 
-header_event_id = 0xffffffffffffffff
-header_magic    = 0xf2b177cb0aa429b4
-dropped_event_id = 0xfffffffffffffffe
+header_event_id = 0xffffffffffffffff # trace/simple.c::HEADER_EVENT_ID
+header_magic    = 0xf2b177cb0aa429b4 # trace/simple.c::HEADER_MAGIC
+dropped_event_id = 0xfffffffffffffffe # trace/simple.c::DROPPED_EVENT_ID
 
-record_type_mapping = 0
-record_type_event = 1
+record_type_mapping = 0 # trace/simple.c::TRACE_RECORD_TYPE_MAPPING
+record_type_event = 1 # trace/simple.c::TRACE_RECORD_TYPE_EVENT
 
-log_header_fmt = '=QQQ'
-rec_header_fmt = '=QQII'
+log_header_fmt = '=QQQ' # trace/simple.c::TraceLogHeader
+rec_header_fmt = '=QQII' # trace/simple.c::TraceRecord
 
 def read_header(fobj, hfmt):
     '''Read a trace record header'''