From 36c84dc7cdcfddb8dc06d2007c30d5d1d15ef66c Mon Sep 17 00:00:00 2001 From: Krzysztof Karas Date: Mon, 27 Sep 2021 12:14:49 +0000 Subject: [PATCH] scripts/bpf/trace.py: print relation information Make use of the changes introduced in previous patches while printing trace information. Change-Id: I69edadfb4a7d34fa9c8c1c520b083372317cabbb Signed-off-by: Krzysztof Karas Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9638 Reviewed-by: Tomasz Zawadzki Reviewed-by: Konrad Sztyber Reviewed-by: Jim Harris Tested-by: SPDK CI Jenkins Community-CI: Broadcom CI --- scripts/bpf/trace.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/scripts/bpf/trace.py b/scripts/bpf/trace.py index 13809e84f..3bb19218d 100755 --- a/scripts/bpf/trace.py +++ b/scripts/bpf/trace.py @@ -176,6 +176,7 @@ class TraceEntry: object_ptr: int time: int args: Dict[str, TypeVar('ArgumentType', str, int)] + related: str class TraceProvider: @@ -235,8 +236,8 @@ class JsonProvider(TraceProvider): obj = entry.get('object', {}) return TraceEntry(tpoint=tpoint, lcore=entry['lcore'], tsc=entry['tsc'], size=entry.get('size'), object_id=obj.get('id'), - object_ptr=obj.get('value'), time=obj.get('time'), - poller=entry.get('poller'), + object_ptr=obj.get('value'), related=entry.get('related'), + time=obj.get('time'), poller=entry.get('poller'), args={n.name: v for n, v in zip(tpoint.args, entry.get('args', []))}) def tsc_rate(self): @@ -407,7 +408,7 @@ class NativeProvider(TraceProvider): yield TraceEntry(tpoint=tpoint, lcore=lcore, tsc=entry.tsc, size=entry.size, object_id=object_id, object_ptr=entry.object_id, poller=poller_id, time=ts, - args=args) + args=args, related=None) class Trace: @@ -455,11 +456,12 @@ class Trace: timestamp = get_us(e.tsc, offset) diff = get_us(e.time, 0) if e.time is not None else None args = ', '.join(self._format_args(e)) + related = ' (' + e.related + ')' if e.related is not None else '' print(('{:3} {:16.3f} {:3} {:24} {:12}'.format( e.lcore, timestamp, e.poller if e.poller is not None else '', e.tpoint.name, f'size: {e.size}' if e.size else '') + - (f'id: {e.object_id:8} ' if e.object_id is not None else '') + + (f'id: {e.object_id + related:12} ' if e.object_id is not None else '') + (f'time: {diff:<8.3f} ' if diff is not None else '') + args).rstrip())