Skip to content

Commit

Permalink
tools: mtrace-reader.py: Add option to mark chunk starts in output
Browse files Browse the repository at this point in the history
Sometimes it can help to see how the chunks arrive from firmware when
comparing logs with the kernel for example.

The --mark-chunks flag will add a marker for each new chunk that is printed
with a running number and the size of the given chunk, for example:

--- Chunk thesofproject#604 start (size: 652) ---
[    0.000000] <inf> init: print_version_banner: FW ABI 0x301d001 DBG ABI 0x5003000 tags SOF:v2.5-stable-branch-2772-g76e650e56598-dirty zephyr:v3.7.0-2127-ge7c84756087f src hash 0x4ff3fd64 (ref hash 0x4ff3fd64)
*** Booting Zephyr OS build v3.7.0-2127-ge7c84756087f ***
[    0.000000] <inf> main: sof_app_main: SOF on intel_adsp
[    0.000000] <inf> main: sof_app_main: SOF initialized
[    0.000000] <inf> ipc: ipc_cmd: rx   : 0x44000000|0x31400008
[11896.403666] <inf> ipc: ipc_cmd: tx-reply     : 0x64000000|0x31400008
[11896.404076] <inf> ipc: ipc_cmd: rx   : 0x44000000|0x3060004c
[11896.404093] <inf> ipc: ipc_cmd: tx-reply     : 0x64000000|0x3060004c
--- Chunk thesofproject#605 start (size: 196) ---

[11896.969658] <inf> ipc: ipc_cmd: rx   : 0x11000005|0x0
[11896.969671] <inf> pipe: pipeline_new: pipeline new pipe_id 0 priority 0
[11896.969685] <inf> ipc: ipc_cmd: tx-reply     : 0xb1000000|0x0

--- Chunk thesofproject#606 start (size: 2236) ---

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
  • Loading branch information
ujfalusi committed Sep 27, 2024
1 parent 64cb133 commit 1156e60
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion tools/mtrace/mtrace-reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,19 @@
import struct
import os
import sys
import argparse

READ_BUFFER = 16384
MTRACE_FILE = "/sys/kernel/debug/sof/mtrace/core0"

parser = argparse.ArgumentParser()
parser.add_argument('-m', '--mark-chunks',
action='store_true')

args = parser.parse_args()

chunk_idx = 0

fd = os.open(MTRACE_FILE, os.O_RDONLY)
while fd >= 0:
# direct unbuffered os.read() must be used to comply with
Expand All @@ -35,4 +44,10 @@
data_len = header[0]
data = read_bytes[4:4+data_len]

os.write(sys.stdout.fileno(), data)
if (args.mark_chunks):
chunk_msg = "\n--- Chunk #{} start (size: {}) ---\n" .format(chunk_idx, data_len)
sys.stdout.write(chunk_msg)

sys.stdout.buffer.write(data)
sys.stdout.flush()
chunk_idx += 1

0 comments on commit 1156e60

Please sign in to comment.