summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python
diff options
context:
space:
mode:
authorMathieu Poirier <mathieu.poirier@linaro.org>2016-05-26 10:31:47 -0600
committerMathieu Poirier <mathieu.poirier@linaro.org>2016-06-20 11:16:09 -0600
commit09e1b6ffeb1b6706c441f9369be027e7ad5d56c1 (patch)
tree4b68ab8304c002010c03324e3e1e3e002097eb06 /tools/perf/scripts/python
parentfb91616a5e3c41d308cea8efc110d38de9055d9c (diff)
cs-etm: associating output packet with CPU they executed on
This patch adds the required mechanic to quickly lookup the CPU number associated with a traceID. That way the CPU that executed the code conveyed by a decoded packet can be identified, without having to do unecessary translations. Using this new functionality the "cs-trace-disasm.py" script is enhanced to output the file and CPU number the code has been executed on: FILE: /lib/aarch64-linux-gnu/ld-2.21.so CPU: 3 7fab57fd80: 910003e0 mov x0, sp 7fab57fd84: 94000d53 bl 7fab5832d0 <free@plt+0x3790> FILE: /lib/aarch64-linux-gnu/ld-2.21.so CPU: 3 7fab5832d0: d11203ff sub sp, sp, #0x480 FILE: /lib/aarch64-linux-gnu/ld-2.21.so CPU: 3 7fab5832d4: a9ba7bfd stp x29, x30, [sp,#-96]! 7fab5832d8: 910003fd mov x29, sp 7fab5832dc: a90363f7 stp x23, x24, [sp,#48] 7fab5832e0: 9101e3b7 add x23, x29, #0x78 7fab5832e4: a90573fb stp x27, x28, [sp,#80] 7fab5832e8: a90153f3 stp x19, x20, [sp,#16] 7fab5832ec: aa0003fb mov x27, x0 7fab5832f0: 910a82e1 add x1, x23, #0x2a0 7fab5832f4: a9025bf5 stp x21, x22, [sp,#32] 7fab5832f8: a9046bf9 stp x25, x26, [sp,#64] 7fab5832fc: 910102e0 add x0, x23, #0x40 7fab583300: f800841f str xzr, [x0],#8 7fab583304: eb01001f cmp x0, x1 7fab583308: 54ffffc1 b.ne 7fab583300 <free@plt+0x37c0> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Diffstat (limited to 'tools/perf/scripts/python')
-rw-r--r--tools/perf/scripts/python/cs-trace-disasm.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/tools/perf/scripts/python/cs-trace-disasm.py b/tools/perf/scripts/python/cs-trace-disasm.py
index 175ae4bfa732..429d0d2d7a23 100644
--- a/tools/perf/scripts/python/cs-trace-disasm.py
+++ b/tools/perf/scripts/python/cs-trace-disasm.py
@@ -82,6 +82,7 @@ def process_event(t):
if (len(disasm_cache) > cache_size):
disasm_cache.clear();
+ cpu = format(sample['cpu'], "d");
addr_range = format(sample['ip'],"x") + ":" + format(sample['addr'],"x");
try:
@@ -103,6 +104,7 @@ def process_event(t):
disasm_output = check_output(disasm).split('\n')
disasm_cache[addr_range] = disasm_output;
+ print "FILE: %s\tCPU: %s" % (dso, cpu);
for line in disasm_output:
m = disasm_re.search(line)
if (m != None) :