mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-25 23:13:26 +00:00
tools: acrntrace: Add support for TRACE_6C/16STR
We have TRACE_6C and TRACE_16STR API in hypervisor now. It's time to add support for parsing data traced by both APIs. Signed-off-by: Kaige Fu <kaige.fu@intel.com> Reviewed-by: Yan, Like <like.yan@intel.com>
This commit is contained in:
parent
3195bc481b
commit
c7f26ba962
@ -70,6 +70,8 @@ TSCREC = "Q"
|
|||||||
HDRREC = "Q"
|
HDRREC = "Q"
|
||||||
D2REC = "QQ"
|
D2REC = "QQ"
|
||||||
D4REC = "IIII"
|
D4REC = "IIII"
|
||||||
|
D8REC = "BBBBBBBBBBBBBBBB"
|
||||||
|
D16REC = "bbbbbbbbbbbbbbbb"
|
||||||
|
|
||||||
def main_loop(formats, fd):
|
def main_loop(formats, fd):
|
||||||
global exit
|
global exit
|
||||||
@ -97,6 +99,18 @@ def main_loop(formats, fd):
|
|||||||
d2 = 0
|
d2 = 0
|
||||||
d3 = 0
|
d3 = 0
|
||||||
d4 = 0
|
d4 = 0
|
||||||
|
d5 = 0
|
||||||
|
d6 = 0
|
||||||
|
d7 = 0
|
||||||
|
d8 = 0
|
||||||
|
d9 = 0
|
||||||
|
d10 = 0
|
||||||
|
d11 = 0
|
||||||
|
d12 = 0
|
||||||
|
d13 = 0
|
||||||
|
d14 = 0
|
||||||
|
d15 = 0
|
||||||
|
d16 = 0
|
||||||
|
|
||||||
if n_data == 2:
|
if n_data == 2:
|
||||||
line = fd.read(struct.calcsize(D2REC))
|
line = fd.read(struct.calcsize(D2REC))
|
||||||
@ -110,13 +124,42 @@ def main_loop(formats, fd):
|
|||||||
break
|
break
|
||||||
(d1, d2, d3, d4) = struct.unpack(D4REC, line)
|
(d1, d2, d3, d4) = struct.unpack(D4REC, line)
|
||||||
|
|
||||||
|
if n_data == 8:
|
||||||
|
line = fd.read(struct.calcsize(D8REC))
|
||||||
|
if not line:
|
||||||
|
break
|
||||||
|
# TRACE_6C using the first 6 data of fields_8. Actaully we have
|
||||||
|
# 16 data in every trace entry.
|
||||||
|
(d1, d2, d3, d4, d5, d6, d7, d8,
|
||||||
|
d9, d10, d11, d12, d13, d14, d15, d16) = struct.unpack(D8REC, line)
|
||||||
|
|
||||||
|
if n_data == 16:
|
||||||
|
line = fd.read(struct.calcsize(D16REC))
|
||||||
|
if not line:
|
||||||
|
break
|
||||||
|
|
||||||
|
(d1, d2, d3, d4, d5, d6, d7, d8,
|
||||||
|
d9, d10, d11, d12, d13, d14, d15, d16) = struct.unpack(D16REC, line)
|
||||||
|
|
||||||
args = {'cpu' : cpu,
|
args = {'cpu' : cpu,
|
||||||
'tsc' : tsc,
|
'tsc' : tsc,
|
||||||
'event' : event,
|
'event' : event,
|
||||||
'1' : d1,
|
'1' : d1,
|
||||||
'2' : d2,
|
'2' : d2,
|
||||||
'3' : d3,
|
'3' : d3,
|
||||||
'4' : d4 }
|
'4' : d4,
|
||||||
|
'5' : d5,
|
||||||
|
'6' : d6,
|
||||||
|
'7' : d7,
|
||||||
|
'8' : d8,
|
||||||
|
'9' : d9,
|
||||||
|
'10' : d10,
|
||||||
|
'11' : d11,
|
||||||
|
'12' : d12,
|
||||||
|
'13' : d13,
|
||||||
|
'14' : d14,
|
||||||
|
'15' : d15,
|
||||||
|
'16' : d16 }
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if str(event) in formats.keys():
|
if str(event) in formats.keys():
|
||||||
|
Loading…
Reference in New Issue
Block a user