From: Mads Ynddal <mads@ynddal.dk>
To: qemu-devel@nongnu.org
Cc: "John Snow" <jsnow@redhat.com>, "Mads Ynddal" <mads@ynddal.dk>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
"Cleber Rosa" <crosa@redhat.com>,
"Mads Ynddal" <m.ynddal@samsung.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: [PATCH v4 04/14] simpletrace: changed naming of edict and idtoname to improve readability
Date: Wed, 23 Aug 2023 10:54:19 +0200 [thread overview]
Message-ID: <20230823085429.20519-5-mads@ynddal.dk> (raw)
In-Reply-To: <20230823085429.20519-1-mads@ynddal.dk>
From: Mads Ynddal <m.ynddal@samsung.com>
Readability is subjective, but I've expanded the naming of the variables
and arguments, to help with understanding for new eyes on the code.
Signed-off-by: Mads Ynddal <m.ynddal@samsung.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
---
scripts/simpletrace.py | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/scripts/simpletrace.py b/scripts/simpletrace.py
index 283b5918a1..09511f624d 100755
--- a/scripts/simpletrace.py
+++ b/scripts/simpletrace.py
@@ -40,17 +40,17 @@ def read_header(fobj, hfmt):
return None
return struct.unpack(hfmt, hdr)
-def get_record(edict, idtoname, rechdr, fobj):
+def get_record(event_mapping, event_id_to_name, rechdr, fobj):
"""Deserialize a trace record from a file into a tuple
(name, timestamp, pid, arg1, ..., arg6)."""
if rechdr is None:
return None
if rechdr[0] != dropped_event_id:
event_id = rechdr[0]
- name = idtoname[event_id]
+ name = event_id_to_name[event_id]
rec = (name, rechdr[1], rechdr[3])
try:
- event = edict[name]
+ event = event_mapping[name]
except KeyError as e:
sys.stderr.write('%s event is logged but is not declared ' \
'in the trace events file, try using ' \
@@ -79,10 +79,10 @@ def get_mapping(fobj):
return (event_id, name)
-def read_record(edict, idtoname, fobj):
+def read_record(event_mapping, event_id_to_name, fobj):
"""Deserialize a trace record from a file into a tuple (event_num, timestamp, pid, arg1, ..., arg6)."""
rechdr = read_header(fobj, rec_header_fmt)
- return get_record(edict, idtoname, rechdr, fobj)
+ return get_record(event_mapping, event_id_to_name, rechdr, fobj)
def read_trace_header(fobj):
"""Read and verify trace file header"""
@@ -103,14 +103,14 @@ def read_trace_header(fobj):
raise ValueError('Log format %d not supported with this QEMU release!'
% log_version)
-def read_trace_records(edict, idtoname, fobj):
+def read_trace_records(event_mapping, event_id_to_name, fobj):
"""Deserialize trace records from a file, yielding record tuples (event_num, timestamp, pid, arg1, ..., arg6).
- Note that `idtoname` is modified if the file contains mapping records.
+ Note that `event_id_to_name` is modified if the file contains mapping records.
Args:
- edict (str -> Event): events dict, indexed by name
- idtoname (int -> str): event names dict, indexed by event ID
+ event_mapping (str -> Event): events dict, indexed by name
+ event_id_to_name (int -> str): event names dict, indexed by event ID
fobj (file): input file
"""
@@ -122,9 +122,9 @@ def read_trace_records(edict, idtoname, fobj):
(rectype, ) = struct.unpack('=Q', t)
if rectype == record_type_mapping:
event_id, name = get_mapping(fobj)
- idtoname[event_id] = name
+ event_id_to_name[event_id] = name
else:
- rec = read_record(edict, idtoname, fobj)
+ rec = read_record(event_mapping, event_id_to_name, fobj)
yield rec
@@ -201,16 +201,16 @@ def process(events, log, analyzer, read_header=True):
frameinfo = inspect.getframeinfo(inspect.currentframe())
dropped_event = Event.build("Dropped_Event(uint64_t num_events_dropped)",
frameinfo.lineno + 1, frameinfo.filename)
- edict = {"dropped": dropped_event}
- idtoname = {dropped_event_id: "dropped"}
+ event_mapping = {"dropped": dropped_event}
+ event_id_to_name = {dropped_event_id: "dropped"}
for event in events_list:
- edict[event.name] = event
+ event_mapping[event.name] = event
# If there is no header assume event ID mapping matches events list
if not read_header:
for event_id, event in enumerate(events_list):
- idtoname[event_id] = event.name
+ event_id_to_name[event_id] = event.name
def build_fn(analyzer, event):
if isinstance(event, str):
@@ -234,9 +234,9 @@ def build_fn(analyzer, event):
analyzer.begin()
fn_cache = {}
- for rec in read_trace_records(edict, idtoname, log):
+ for rec in read_trace_records(event_mapping, event_id_to_name, log):
event_num = rec[0]
- event = edict[event_num]
+ event = event_mapping[event_num]
if event_num not in fn_cache:
fn_cache[event_num] = build_fn(analyzer, event)
fn_cache[event_num](event, rec)
--
2.38.1
next prev parent reply other threads:[~2023-08-23 8:55 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20230823085439eucas1p2d351b168833b9206cee2bbc8af9df1ac@eucas1p2.samsung.com>
2023-08-23 8:54 ` [PATCH v4 00/14] simpletrace: refactor and general improvements Mads Ynddal
2023-08-23 8:54 ` [PATCH v4 01/14] simpletrace: add __all__ to define public interface Mads Ynddal
2023-09-14 21:06 ` Stefan Hajnoczi
2023-08-23 8:54 ` [PATCH v4 02/14] simpletrace: annotate magic constants from QEMU code Mads Ynddal
2023-09-14 21:09 ` Stefan Hajnoczi
2023-08-23 8:54 ` [PATCH v4 03/14] simpletrace: improve parsing of sys.argv; fix files never closed Mads Ynddal
2023-09-20 18:57 ` Stefan Hajnoczi
2023-08-23 8:54 ` Mads Ynddal [this message]
2023-09-20 19:46 ` [PATCH v4 04/14] simpletrace: changed naming of edict and idtoname to improve readability Stefan Hajnoczi
2023-08-23 8:54 ` [PATCH v4 05/14] simpletrace: update code for Python 3.11 Mads Ynddal
2023-09-05 11:30 ` Philippe Mathieu-Daudé
2023-08-23 8:54 ` [PATCH v4 06/14] simpletrace: improved error handling on struct unpack Mads Ynddal
2023-09-05 11:34 ` Philippe Mathieu-Daudé
2023-09-20 19:49 ` Stefan Hajnoczi
2023-08-23 8:54 ` [PATCH v4 07/14] simpletrace: define exception and add handling Mads Ynddal
2023-09-20 20:08 ` Stefan Hajnoczi
2023-08-23 8:54 ` [PATCH v4 08/14] simpletrace: made Analyzer into context-manager Mads Ynddal
2023-09-20 20:11 ` Stefan Hajnoczi
2023-08-23 8:54 ` [PATCH v4 09/14] simpletrace: refactor to separate responsibilities Mads Ynddal
2023-09-20 20:16 ` Stefan Hajnoczi
2023-08-23 8:54 ` [PATCH v4 10/14] simpletrace: move logic of process into internal function Mads Ynddal
2023-09-20 20:16 ` Stefan Hajnoczi
2023-08-23 8:54 ` [PATCH v4 11/14] simpletrace: move event processing to Analyzer class Mads Ynddal
2023-09-05 11:37 ` Philippe Mathieu-Daudé
2023-09-20 20:18 ` Stefan Hajnoczi
2023-08-23 8:54 ` [PATCH v4 12/14] simpletrace: added simplified Analyzer2 class Mads Ynddal
2023-09-05 12:19 ` Mads Ynddal
2023-09-05 12:42 ` Daniel P. Berrangé
2023-09-06 8:32 ` Mads Ynddal
2023-09-06 8:57 ` Daniel P. Berrangé
2023-09-20 20:21 ` Stefan Hajnoczi
2023-09-20 20:28 ` Stefan Hajnoczi
2023-09-26 10:40 ` Mads Ynddal
2023-08-23 8:54 ` [PATCH v4 13/14] MAINTAINERS: add maintainer of simpletrace.py Mads Ynddal
2023-09-05 11:38 ` Philippe Mathieu-Daudé
2023-09-20 20:37 ` Stefan Hajnoczi
2023-09-26 10:26 ` Mads Ynddal
2023-09-26 13:45 ` Stefan Hajnoczi
2023-08-23 8:54 ` [PATCH v4 14/14] scripts/analyse-locks-simpletrace.py: changed iteritems() to items() Mads Ynddal
2023-09-05 11:39 ` Philippe Mathieu-Daudé
2023-09-20 20:38 ` Stefan Hajnoczi
2023-09-05 10:46 ` [PATCH v4 00/14] simpletrace: refactor and general improvements Mads Ynddal
2023-09-20 20:39 ` Stefan Hajnoczi
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=20230823085429.20519-5-mads@ynddal.dk \
--to=mads@ynddal.dk \
--cc=crosa@redhat.com \
--cc=jsnow@redhat.com \
--cc=m.ynddal@samsung.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/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).