* [PATCH v4] perf annotate: Add itrace options support
@ 2021-06-15 9:17 Yang Jihong
2021-06-15 10:27 ` Adrian Hunter
0 siblings, 1 reply; 4+ messages in thread
From: Yang Jihong @ 2021-06-15 9:17 UTC (permalink / raw)
To: peterz, mingo, acme, mark.rutland, alexander.shishkin, jolsa,
namhyung, adrian.hunter, linux-perf-users, linux-kernel
Cc: yangjihong1
The "auxtrace_info" and "auxtrace" functions are not set in "tool" member of
"annotate". As a result, perf annotate does not support parsing itrace data.
Before:
# perf record -e arm_spe_0/branch_filter=1/ -a sleep 1
[ perf record: Woken up 9 times to write data ]
[ perf record: Captured and wrote 20.874 MB perf.data ]
# perf annotate --stdio
Error:
The perf.data data has no samples!
Solution:
1.Add itrace options in help,
2.Set hook functions of "id_index", "auxtrace_info" and "auxtrace" in perf_tool.
After:
# perf record --all-user -e arm_spe_0/branch_filter=1/ ls
Couldn't synthesize bpf events.
perf.data
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.010 MB perf.data ]
# perf annotate --stdio
Percent | Source code & Disassembly of libc-2.28.so for branch-miss (1 samples, percent: local period)
------------------------------------------------------------------------------------------------------------
:
:
:
: Disassembly of section .text:
:
: 0000000000066180 <__getdelim@@GLIBC_2.17>:
0.00 : 66180: stp x29, x30, [sp, #-96]!
0.00 : 66184: cmp x0, #0x0
0.00 : 66188: ccmp x1, #0x0, #0x4, ne // ne = any
0.00 : 6618c: mov x29, sp
0.00 : 66190: stp x24, x25, [sp, #56]
0.00 : 66194: stp x26, x27, [sp, #72]
0.00 : 66198: str x28, [sp, #88]
0.00 : 6619c: b.eq 66450 <__getdelim@@GLIBC_2.17+0x2d0> // b.none
0.00 : 661a0: stp x22, x23, [x29, #40]
0.00 : 661a4: mov x22, x1
0.00 : 661a8: ldr w1, [x3]
0.00 : 661ac: mov w23, w2
0.00 : 661b0: stp x20, x21, [x29, #24]
0.00 : 661b4: mov x20, x3
0.00 : 661b8: mov x21, x0
0.00 : 661bc: tbnz w1, #15, 66360 <__getdelim@@GLIBC_2.17+0x1e0>
0.00 : 661c0: ldr x0, [x3, #136]
0.00 : 661c4: ldr x2, [x0, #8]
0.00 : 661c8: str x19, [x29, #16]
0.00 : 661cc: mrs x19, tpidr_el0
0.00 : 661d0: sub x19, x19, #0x700
0.00 : 661d4: cmp x2, x19
0.00 : 661d8: b.eq 663f0 <__getdelim@@GLIBC_2.17+0x270> // b.none
0.00 : 661dc: mov w1, #0x1 // #1
0.00 : 661e0: ldaxr w2, [x0]
0.00 : 661e4: cmp w2, #0x0
0.00 : 661e8: b.ne 661f4 <__getdelim@@GLIBC_2.17+0x74> // b.any
0.00 : 661ec: stxr w3, w1, [x0]
0.00 : 661f0: cbnz w3, 661e0 <__getdelim@@GLIBC_2.17+0x60>
0.00 : 661f4: b.ne 66448 <__getdelim@@GLIBC_2.17+0x2c8> // b.any
0.00 : 661f8: ldr x0, [x20, #136]
0.00 : 661fc: ldr w1, [x20]
0.00 : 66200: ldr w2, [x0, #4]
0.00 : 66204: str x19, [x0, #8]
0.00 : 66208: add w2, w2, #0x1
0.00 : 6620c: str w2, [x0, #4]
0.00 : 66210: tbnz w1, #5, 66388 <__getdelim@@GLIBC_2.17+0x208>
0.00 : 66214: ldr x19, [x29, #16]
0.00 : 66218: ldr x0, [x21]
0.00 : 6621c: cbz x0, 66228 <__getdelim@@GLIBC_2.17+0xa8>
0.00 : 66220: ldr x0, [x22]
0.00 : 66224: cbnz x0, 6623c <__getdelim@@GLIBC_2.17+0xbc>
0.00 : 66228: mov x0, #0x78 // #120
0.00 : 6622c: str x0, [x22]
0.00 : 66230: bl 20710 <malloc@plt>
0.00 : 66234: str x0, [x21]
0.00 : 66238: cbz x0, 66428 <__getdelim@@GLIBC_2.17+0x2a8>
0.00 : 6623c: ldr x27, [x20, #8]
0.00 : 66240: str x19, [x29, #16]
0.00 : 66244: ldr x19, [x20, #16]
0.00 : 66248: sub x19, x19, x27
0.00 : 6624c: cmp x19, #0x0
0.00 : 66250: b.le 66398 <__getdelim@@GLIBC_2.17+0x218>
0.00 : 66254: mov x25, #0x0 // #0
0.00 : 66258: b 662d8 <__getdelim@@GLIBC_2.17+0x158>
0.00 : 6625c: nop
0.00 : 66260: add x24, x19, x25
0.00 : 66264: ldr x3, [x22]
0.00 : 66268: add x26, x24, #0x1
0.00 : 6626c: ldr x0, [x21]
0.00 : 66270: cmp x3, x26
0.00 : 66274: b.cs 6629c <__getdelim@@GLIBC_2.17+0x11c> // b.hs, b.nlast
0.00 : 66278: lsl x3, x3, #1
0.00 : 6627c: cmp x3, x26
0.00 : 66280: csel x26, x3, x26, cs // cs = hs, nlast
0.00 : 66284: mov x1, x26
0.00 : 66288: bl 206f0 <realloc@plt>
0.00 : 6628c: cbz x0, 66438 <__getdelim@@GLIBC_2.17+0x2b8>
0.00 : 66290: str x0, [x21]
0.00 : 66294: ldr x27, [x20, #8]
0.00 : 66298: str x26, [x22]
0.00 : 6629c: mov x2, x19
0.00 : 662a0: mov x1, x27
0.00 : 662a4: add x0, x0, x25
0.00 : 662a8: bl 87390 <explicit_bzero@@GLIBC_2.25+0x50>
0.00 : 662ac: ldr x0, [x20, #8]
0.00 : 662b0: add x19, x0, x19
0.00 : 662b4: str x19, [x20, #8]
0.00 : 662b8: cbnz x28, 66410 <__getdelim@@GLIBC_2.17+0x290>
0.00 : 662bc: mov x0, x20
0.00 : 662c0: bl 73b80 <__underflow@@GLIBC_2.17>
0.00 : 662c4: cmn w0, #0x1
0.00 : 662c8: b.eq 66410 <__getdelim@@GLIBC_2.17+0x290> // b.none
0.00 : 662cc: ldp x27, x19, [x20, #8]
0.00 : 662d0: mov x25, x24
0.00 : 662d4: sub x19, x19, x27
0.00 : 662d8: mov x2, x19
0.00 : 662dc: mov w1, w23
0.00 : 662e0: mov x0, x27
0.00 : 662e4: bl 807b0 <memchr@@GLIBC_2.17>
0.00 : 662e8: cmp x0, #0x0
0.00 : 662ec: mov x28, x0
0.00 : 662f0: sub x0, x0, x27
0.00 : 662f4: csinc x19, x19, x0, eq // eq = none
0.00 : 662f8: mov x0, #0x7fffffffffffffff // #9223372036854775807
0.00 : 662fc: sub x0, x0, x25
0.00 : 66300: cmp x19, x0
0.00 : 66304: b.lt 66260 <__getdelim@@GLIBC_2.17+0xe0> // b.tstop
0.00 : 66308: adrp x0, 17f000 <sys_sigabbrev@@GLIBC_2.17+0x320>
0.00 : 6630c: ldr x0, [x0, #3624]
0.00 : 66310: mrs x2, tpidr_el0
0.00 : 66314: ldr x19, [x29, #16]
0.00 : 66318: mov w3, #0x4b // #75
0.00 : 6631c: ldr w1, [x20]
0.00 : 66320: mov x24, #0xffffffffffffffff // #-1
0.00 : 66324: str w3, [x2, x0]
0.00 : 66328: tbnz w1, #15, 66340 <__getdelim@@GLIBC_2.17+0x1c0>
0.00 : 6632c: ldr x0, [x20, #136]
0.00 : 66330: ldr w1, [x0, #4]
0.00 : 66334: sub w1, w1, #0x1
0.00 : 66338: str w1, [x0, #4]
0.00 : 6633c: cbz w1, 663b8 <__getdelim@@GLIBC_2.17+0x238>
0.00 : 66340: mov x0, x24
0.00 : 66344: ldr x28, [sp, #88]
0.00 : 66348: ldp x20, x21, [x29, #24]
0.00 : 6634c: ldp x22, x23, [x29, #40]
0.00 : 66350: ldp x24, x25, [sp, #56]
0.00 : 66354: ldp x26, x27, [sp, #72]
0.00 : 66358: ldp x29, x30, [sp], #96
0.00 : 6635c: ret
100.00 : 66360: tbz w1, #5, 66218 <__getdelim@@GLIBC_2.17+0x98>
0.00 : 66364: ldp x20, x21, [x29, #24]
0.00 : 66368: mov x24, #0xffffffffffffffff // #-1
0.00 : 6636c: ldp x22, x23, [x29, #40]
0.00 : 66370: mov x0, x24
0.00 : 66374: ldp x24, x25, [sp, #56]
0.00 : 66378: ldp x26, x27, [sp, #72]
0.00 : 6637c: ldr x28, [sp, #88]
0.00 : 66380: ldp x29, x30, [sp], #96
0.00 : 66384: ret
0.00 : 66388: mov x24, #0xffffffffffffffff // #-1
0.00 : 6638c: ldr x19, [x29, #16]
0.00 : 66390: b 66328 <__getdelim@@GLIBC_2.17+0x1a8>
0.00 : 66394: nop
0.00 : 66398: mov x0, x20
0.00 : 6639c: bl 73b80 <__underflow@@GLIBC_2.17>
0.00 : 663a0: cmn w0, #0x1
0.00 : 663a4: b.eq 66438 <__getdelim@@GLIBC_2.17+0x2b8> // b.none
0.00 : 663a8: ldp x27, x19, [x20, #8]
0.00 : 663ac: sub x19, x19, x27
0.00 : 663b0: b 66254 <__getdelim@@GLIBC_2.17+0xd4>
0.00 : 663b4: nop
0.00 : 663b8: str xzr, [x0, #8]
0.00 : 663bc: ldxr w2, [x0]
0.00 : 663c0: stlxr w3, w1, [x0]
0.00 : 663c4: cbnz w3, 663bc <__getdelim@@GLIBC_2.17+0x23c>
0.00 : 663c8: cmp w2, #0x1
0.00 : 663cc: b.le 66340 <__getdelim@@GLIBC_2.17+0x1c0>
0.00 : 663d0: mov x1, #0x81 // #129
0.00 : 663d4: mov x2, #0x1 // #1
0.00 : 663d8: mov x3, #0x0 // #0
0.00 : 663dc: mov x8, #0x62 // #98
0.00 : 663e0: svc #0x0
0.00 : 663e4: ldp x20, x21, [x29, #24]
0.00 : 663e8: ldp x22, x23, [x29, #40]
0.00 : 663ec: b 66370 <__getdelim@@GLIBC_2.17+0x1f0>
0.00 : 663f0: ldr w2, [x0, #4]
0.00 : 663f4: add w2, w2, #0x1
0.00 : 663f8: str w2, [x0, #4]
0.00 : 663fc: tbz w1, #5, 66214 <__getdelim@@GLIBC_2.17+0x94>
0.00 : 66400: mov x24, #0xffffffffffffffff // #-1
0.00 : 66404: ldr x19, [x29, #16]
0.00 : 66408: b 66330 <__getdelim@@GLIBC_2.17+0x1b0>
0.00 : 6640c: nop
0.00 : 66410: ldr x0, [x21]
0.00 : 66414: strb wzr, [x0, x24]
0.00 : 66418: ldr w1, [x20]
0.00 : 6641c: ldr x19, [x29, #16]
0.00 : 66420: b 66328 <__getdelim@@GLIBC_2.17+0x1a8>
0.00 : 66424: nop
0.00 : 66428: mov x24, #0xffffffffffffffff // #-1
0.00 : 6642c: ldr w1, [x20]
0.00 : 66430: b 66328 <__getdelim@@GLIBC_2.17+0x1a8>
0.00 : 66434: nop
0.00 : 66438: mov x24, #0xffffffffffffffff // #-1
0.00 : 6643c: ldr w1, [x20]
0.00 : 66440: ldr x19, [x29, #16]
0.00 : 66444: b 66328 <__getdelim@@GLIBC_2.17+0x1a8>
0.00 : 66448: bl e3ba0 <pthread_setcanceltype@@GLIBC_2.17+0x30>
0.00 : 6644c: b 661f8 <__getdelim@@GLIBC_2.17+0x78>
0.00 : 66450: adrp x0, 17f000 <sys_sigabbrev@@GLIBC_2.17+0x320>
0.00 : 66454: ldr x0, [x0, #3624]
0.00 : 66458: mrs x1, tpidr_el0
0.00 : 6645c: mov w2, #0x16 // #22
0.00 : 66460: mov x24, #0xffffffffffffffff // #-1
0.00 : 66464: str w2, [x1, x0]
0.00 : 66468: b 66370 <__getdelim@@GLIBC_2.17+0x1f0>
0.00 : 6646c: ldr w1, [x20]
0.00 : 66470: mov x4, x0
0.00 : 66474: tbnz w1, #15, 6648c <__getdelim@@GLIBC_2.17+0x30c>
0.00 : 66478: ldr x0, [x20, #136]
0.00 : 6647c: ldr w1, [x0, #4]
0.00 : 66480: sub w1, w1, #0x1
0.00 : 66484: str w1, [x0, #4]
0.00 : 66488: cbz w1, 66494 <__getdelim@@GLIBC_2.17+0x314>
0.00 : 6648c: mov x0, x4
0.00 : 66490: bl 20e40 <gnu_get_libc_version@@GLIBC_2.17+0x130>
0.00 : 66494: str xzr, [x0, #8]
0.00 : 66498: ldxr w2, [x0]
0.00 : 6649c: stlxr w3, w1, [x0]
0.00 : 664a0: cbnz w3, 66498 <__getdelim@@GLIBC_2.17+0x318>
0.00 : 664a4: cmp w2, #0x1
0.00 : 664a8: b.le 6648c <__getdelim@@GLIBC_2.17+0x30c>
0.00 : 664ac: mov x1, #0x81 // #129
0.00 : 664b0: mov x2, #0x1 // #1
0.00 : 664b4: mov x3, #0x0 // #0
0.00 : 664b8: mov x8, #0x62 // #98
0.00 : 664bc: svc #0x0
0.00 : 664c0: b 6648c <__getdelim@@GLIBC_2.17+0x30c>
Signed-off-by: Yang Jihong <yangjihong1@huawei.com>
Tested-by: Leo Yan <leo.yan@linaro.org>
---
Changes since v3:
- Set hook function of "id_index" for Intel PT sample mode.
Changes since v2:
- Updating tools/perf/Documentation/perf-annotate.txt.
- Add test result to commit message.
Changes since v1:
- Adjust spaces to maintain alignment in "tool".
tools/perf/Documentation/perf-annotate.txt | 7 +++++++
tools/perf/builtin-annotate.c | 11 +++++++++++
2 files changed, 18 insertions(+)
diff --git a/tools/perf/Documentation/perf-annotate.txt b/tools/perf/Documentation/perf-annotate.txt
index 80c1be5d566c..33c2521cba4a 100644
--- a/tools/perf/Documentation/perf-annotate.txt
+++ b/tools/perf/Documentation/perf-annotate.txt
@@ -58,6 +58,13 @@ OPTIONS
--ignore-vmlinux::
Ignore vmlinux files.
+--itrace::
+ Options for decoding instruction tracing data. The options are:
+
+include::itrace.txt[]
+
+ To disable decoding entirely, use --no-itrace.
+
-m::
--modules::
Load module symbols. WARNING: use only with -k and LIVE kernel.
diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index 49627a7bed7c..cebb861be3e3 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -474,6 +474,9 @@ int cmd_annotate(int argc, const char **argv)
.attr = perf_event__process_attr,
.build_id = perf_event__process_build_id,
.tracing_data = perf_event__process_tracing_data,
+ .id_index = perf_event__process_id_index,
+ .auxtrace_info = perf_event__process_auxtrace_info,
+ .auxtrace = perf_event__process_auxtrace,
.feature = process_feature_event,
.ordered_events = true,
.ordering_requires_timestamps = true,
@@ -483,6 +486,9 @@ int cmd_annotate(int argc, const char **argv)
struct perf_data data = {
.mode = PERF_DATA_MODE_READ,
};
+ struct itrace_synth_opts itrace_synth_opts = {
+ .set = 0,
+ };
struct option options[] = {
OPT_STRING('i', "input", &input_name, "file",
"input file name"),
@@ -547,6 +553,9 @@ int cmd_annotate(int argc, const char **argv)
OPT_CALLBACK(0, "percent-type", &annotate.opts, "local-period",
"Set percent type local/global-period/hits",
annotate_parse_percent_type),
+ OPT_CALLBACK_OPTARG(0, "itrace", &itrace_synth_opts, NULL, "opts",
+ "Instruction Tracing options\n" ITRACE_HELP,
+ itrace_parse_synth_opts),
OPT_END()
};
@@ -591,6 +600,8 @@ int cmd_annotate(int argc, const char **argv)
if (IS_ERR(annotate.session))
return PTR_ERR(annotate.session);
+ annotate.session->itrace_synth_opts = &itrace_synth_opts;
+
annotate.has_br_stack = perf_header__has_feat(&annotate.session->header,
HEADER_BRANCH_STACK);
--
2.30.GIT
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v4] perf annotate: Add itrace options support
2021-06-15 9:17 [PATCH v4] perf annotate: Add itrace options support Yang Jihong
@ 2021-06-15 10:27 ` Adrian Hunter
2021-06-16 9:36 ` Yang Jihong
2021-06-16 18:08 ` Arnaldo Carvalho de Melo
0 siblings, 2 replies; 4+ messages in thread
From: Adrian Hunter @ 2021-06-15 10:27 UTC (permalink / raw)
To: Yang Jihong, peterz, mingo, acme, mark.rutland,
alexander.shishkin, jolsa, namhyung, linux-perf-users,
linux-kernel
On 15/06/21 12:17 pm, Yang Jihong wrote:
> The "auxtrace_info" and "auxtrace" functions are not set in "tool" member of
> "annotate". As a result, perf annotate does not support parsing itrace data.
>
> Before:
>
> # perf record -e arm_spe_0/branch_filter=1/ -a sleep 1
> [ perf record: Woken up 9 times to write data ]
> [ perf record: Captured and wrote 20.874 MB perf.data ]
> # perf annotate --stdio
> Error:
> The perf.data data has no samples!
>
> Solution:
> 1.Add itrace options in help,
> 2.Set hook functions of "id_index", "auxtrace_info" and "auxtrace" in perf_tool.
>
> After:
>
> # perf record --all-user -e arm_spe_0/branch_filter=1/ ls
> Couldn't synthesize bpf events.
> perf.data
> [ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.010 MB perf.data ]
> # perf annotate --stdio
> Percent | Source code & Disassembly of libc-2.28.so for branch-miss (1 samples, percent: local period)
> ------------------------------------------------------------------------------------------------------------
> :
> :
> :
> : Disassembly of section .text:
> :
> : 0000000000066180 <__getdelim@@GLIBC_2.17>:
> 0.00 : 66180: stp x29, x30, [sp, #-96]!
> 0.00 : 66184: cmp x0, #0x0
> 0.00 : 66188: ccmp x1, #0x0, #0x4, ne // ne = any
> 0.00 : 6618c: mov x29, sp
> 0.00 : 66190: stp x24, x25, [sp, #56]
> 0.00 : 66194: stp x26, x27, [sp, #72]
> 0.00 : 66198: str x28, [sp, #88]
> 0.00 : 6619c: b.eq 66450 <__getdelim@@GLIBC_2.17+0x2d0> // b.none
> 0.00 : 661a0: stp x22, x23, [x29, #40]
> 0.00 : 661a4: mov x22, x1
> 0.00 : 661a8: ldr w1, [x3]
> 0.00 : 661ac: mov w23, w2
> 0.00 : 661b0: stp x20, x21, [x29, #24]
> 0.00 : 661b4: mov x20, x3
> 0.00 : 661b8: mov x21, x0
> 0.00 : 661bc: tbnz w1, #15, 66360 <__getdelim@@GLIBC_2.17+0x1e0>
> 0.00 : 661c0: ldr x0, [x3, #136]
> 0.00 : 661c4: ldr x2, [x0, #8]
> 0.00 : 661c8: str x19, [x29, #16]
> 0.00 : 661cc: mrs x19, tpidr_el0
> 0.00 : 661d0: sub x19, x19, #0x700
> 0.00 : 661d4: cmp x2, x19
> 0.00 : 661d8: b.eq 663f0 <__getdelim@@GLIBC_2.17+0x270> // b.none
> 0.00 : 661dc: mov w1, #0x1 // #1
> 0.00 : 661e0: ldaxr w2, [x0]
> 0.00 : 661e4: cmp w2, #0x0
> 0.00 : 661e8: b.ne 661f4 <__getdelim@@GLIBC_2.17+0x74> // b.any
> 0.00 : 661ec: stxr w3, w1, [x0]
> 0.00 : 661f0: cbnz w3, 661e0 <__getdelim@@GLIBC_2.17+0x60>
> 0.00 : 661f4: b.ne 66448 <__getdelim@@GLIBC_2.17+0x2c8> // b.any
> 0.00 : 661f8: ldr x0, [x20, #136]
> 0.00 : 661fc: ldr w1, [x20]
> 0.00 : 66200: ldr w2, [x0, #4]
> 0.00 : 66204: str x19, [x0, #8]
> 0.00 : 66208: add w2, w2, #0x1
> 0.00 : 6620c: str w2, [x0, #4]
> 0.00 : 66210: tbnz w1, #5, 66388 <__getdelim@@GLIBC_2.17+0x208>
> 0.00 : 66214: ldr x19, [x29, #16]
> 0.00 : 66218: ldr x0, [x21]
> 0.00 : 6621c: cbz x0, 66228 <__getdelim@@GLIBC_2.17+0xa8>
> 0.00 : 66220: ldr x0, [x22]
> 0.00 : 66224: cbnz x0, 6623c <__getdelim@@GLIBC_2.17+0xbc>
> 0.00 : 66228: mov x0, #0x78 // #120
> 0.00 : 6622c: str x0, [x22]
> 0.00 : 66230: bl 20710 <malloc@plt>
> 0.00 : 66234: str x0, [x21]
> 0.00 : 66238: cbz x0, 66428 <__getdelim@@GLIBC_2.17+0x2a8>
> 0.00 : 6623c: ldr x27, [x20, #8]
> 0.00 : 66240: str x19, [x29, #16]
> 0.00 : 66244: ldr x19, [x20, #16]
> 0.00 : 66248: sub x19, x19, x27
> 0.00 : 6624c: cmp x19, #0x0
> 0.00 : 66250: b.le 66398 <__getdelim@@GLIBC_2.17+0x218>
> 0.00 : 66254: mov x25, #0x0 // #0
> 0.00 : 66258: b 662d8 <__getdelim@@GLIBC_2.17+0x158>
> 0.00 : 6625c: nop
> 0.00 : 66260: add x24, x19, x25
> 0.00 : 66264: ldr x3, [x22]
> 0.00 : 66268: add x26, x24, #0x1
> 0.00 : 6626c: ldr x0, [x21]
> 0.00 : 66270: cmp x3, x26
> 0.00 : 66274: b.cs 6629c <__getdelim@@GLIBC_2.17+0x11c> // b.hs, b.nlast
> 0.00 : 66278: lsl x3, x3, #1
> 0.00 : 6627c: cmp x3, x26
> 0.00 : 66280: csel x26, x3, x26, cs // cs = hs, nlast
> 0.00 : 66284: mov x1, x26
> 0.00 : 66288: bl 206f0 <realloc@plt>
> 0.00 : 6628c: cbz x0, 66438 <__getdelim@@GLIBC_2.17+0x2b8>
> 0.00 : 66290: str x0, [x21]
> 0.00 : 66294: ldr x27, [x20, #8]
> 0.00 : 66298: str x26, [x22]
> 0.00 : 6629c: mov x2, x19
> 0.00 : 662a0: mov x1, x27
> 0.00 : 662a4: add x0, x0, x25
> 0.00 : 662a8: bl 87390 <explicit_bzero@@GLIBC_2.25+0x50>
> 0.00 : 662ac: ldr x0, [x20, #8]
> 0.00 : 662b0: add x19, x0, x19
> 0.00 : 662b4: str x19, [x20, #8]
> 0.00 : 662b8: cbnz x28, 66410 <__getdelim@@GLIBC_2.17+0x290>
> 0.00 : 662bc: mov x0, x20
> 0.00 : 662c0: bl 73b80 <__underflow@@GLIBC_2.17>
> 0.00 : 662c4: cmn w0, #0x1
> 0.00 : 662c8: b.eq 66410 <__getdelim@@GLIBC_2.17+0x290> // b.none
> 0.00 : 662cc: ldp x27, x19, [x20, #8]
> 0.00 : 662d0: mov x25, x24
> 0.00 : 662d4: sub x19, x19, x27
> 0.00 : 662d8: mov x2, x19
> 0.00 : 662dc: mov w1, w23
> 0.00 : 662e0: mov x0, x27
> 0.00 : 662e4: bl 807b0 <memchr@@GLIBC_2.17>
> 0.00 : 662e8: cmp x0, #0x0
> 0.00 : 662ec: mov x28, x0
> 0.00 : 662f0: sub x0, x0, x27
> 0.00 : 662f4: csinc x19, x19, x0, eq // eq = none
> 0.00 : 662f8: mov x0, #0x7fffffffffffffff // #9223372036854775807
> 0.00 : 662fc: sub x0, x0, x25
> 0.00 : 66300: cmp x19, x0
> 0.00 : 66304: b.lt 66260 <__getdelim@@GLIBC_2.17+0xe0> // b.tstop
> 0.00 : 66308: adrp x0, 17f000 <sys_sigabbrev@@GLIBC_2.17+0x320>
> 0.00 : 6630c: ldr x0, [x0, #3624]
> 0.00 : 66310: mrs x2, tpidr_el0
> 0.00 : 66314: ldr x19, [x29, #16]
> 0.00 : 66318: mov w3, #0x4b // #75
> 0.00 : 6631c: ldr w1, [x20]
> 0.00 : 66320: mov x24, #0xffffffffffffffff // #-1
> 0.00 : 66324: str w3, [x2, x0]
> 0.00 : 66328: tbnz w1, #15, 66340 <__getdelim@@GLIBC_2.17+0x1c0>
> 0.00 : 6632c: ldr x0, [x20, #136]
> 0.00 : 66330: ldr w1, [x0, #4]
> 0.00 : 66334: sub w1, w1, #0x1
> 0.00 : 66338: str w1, [x0, #4]
> 0.00 : 6633c: cbz w1, 663b8 <__getdelim@@GLIBC_2.17+0x238>
> 0.00 : 66340: mov x0, x24
> 0.00 : 66344: ldr x28, [sp, #88]
> 0.00 : 66348: ldp x20, x21, [x29, #24]
> 0.00 : 6634c: ldp x22, x23, [x29, #40]
> 0.00 : 66350: ldp x24, x25, [sp, #56]
> 0.00 : 66354: ldp x26, x27, [sp, #72]
> 0.00 : 66358: ldp x29, x30, [sp], #96
> 0.00 : 6635c: ret
> 100.00 : 66360: tbz w1, #5, 66218 <__getdelim@@GLIBC_2.17+0x98>
> 0.00 : 66364: ldp x20, x21, [x29, #24]
> 0.00 : 66368: mov x24, #0xffffffffffffffff // #-1
> 0.00 : 6636c: ldp x22, x23, [x29, #40]
> 0.00 : 66370: mov x0, x24
> 0.00 : 66374: ldp x24, x25, [sp, #56]
> 0.00 : 66378: ldp x26, x27, [sp, #72]
> 0.00 : 6637c: ldr x28, [sp, #88]
> 0.00 : 66380: ldp x29, x30, [sp], #96
> 0.00 : 66384: ret
> 0.00 : 66388: mov x24, #0xffffffffffffffff // #-1
> 0.00 : 6638c: ldr x19, [x29, #16]
> 0.00 : 66390: b 66328 <__getdelim@@GLIBC_2.17+0x1a8>
> 0.00 : 66394: nop
> 0.00 : 66398: mov x0, x20
> 0.00 : 6639c: bl 73b80 <__underflow@@GLIBC_2.17>
> 0.00 : 663a0: cmn w0, #0x1
> 0.00 : 663a4: b.eq 66438 <__getdelim@@GLIBC_2.17+0x2b8> // b.none
> 0.00 : 663a8: ldp x27, x19, [x20, #8]
> 0.00 : 663ac: sub x19, x19, x27
> 0.00 : 663b0: b 66254 <__getdelim@@GLIBC_2.17+0xd4>
> 0.00 : 663b4: nop
> 0.00 : 663b8: str xzr, [x0, #8]
> 0.00 : 663bc: ldxr w2, [x0]
> 0.00 : 663c0: stlxr w3, w1, [x0]
> 0.00 : 663c4: cbnz w3, 663bc <__getdelim@@GLIBC_2.17+0x23c>
> 0.00 : 663c8: cmp w2, #0x1
> 0.00 : 663cc: b.le 66340 <__getdelim@@GLIBC_2.17+0x1c0>
> 0.00 : 663d0: mov x1, #0x81 // #129
> 0.00 : 663d4: mov x2, #0x1 // #1
> 0.00 : 663d8: mov x3, #0x0 // #0
> 0.00 : 663dc: mov x8, #0x62 // #98
> 0.00 : 663e0: svc #0x0
> 0.00 : 663e4: ldp x20, x21, [x29, #24]
> 0.00 : 663e8: ldp x22, x23, [x29, #40]
> 0.00 : 663ec: b 66370 <__getdelim@@GLIBC_2.17+0x1f0>
> 0.00 : 663f0: ldr w2, [x0, #4]
> 0.00 : 663f4: add w2, w2, #0x1
> 0.00 : 663f8: str w2, [x0, #4]
> 0.00 : 663fc: tbz w1, #5, 66214 <__getdelim@@GLIBC_2.17+0x94>
> 0.00 : 66400: mov x24, #0xffffffffffffffff // #-1
> 0.00 : 66404: ldr x19, [x29, #16]
> 0.00 : 66408: b 66330 <__getdelim@@GLIBC_2.17+0x1b0>
> 0.00 : 6640c: nop
> 0.00 : 66410: ldr x0, [x21]
> 0.00 : 66414: strb wzr, [x0, x24]
> 0.00 : 66418: ldr w1, [x20]
> 0.00 : 6641c: ldr x19, [x29, #16]
> 0.00 : 66420: b 66328 <__getdelim@@GLIBC_2.17+0x1a8>
> 0.00 : 66424: nop
> 0.00 : 66428: mov x24, #0xffffffffffffffff // #-1
> 0.00 : 6642c: ldr w1, [x20]
> 0.00 : 66430: b 66328 <__getdelim@@GLIBC_2.17+0x1a8>
> 0.00 : 66434: nop
> 0.00 : 66438: mov x24, #0xffffffffffffffff // #-1
> 0.00 : 6643c: ldr w1, [x20]
> 0.00 : 66440: ldr x19, [x29, #16]
> 0.00 : 66444: b 66328 <__getdelim@@GLIBC_2.17+0x1a8>
> 0.00 : 66448: bl e3ba0 <pthread_setcanceltype@@GLIBC_2.17+0x30>
> 0.00 : 6644c: b 661f8 <__getdelim@@GLIBC_2.17+0x78>
> 0.00 : 66450: adrp x0, 17f000 <sys_sigabbrev@@GLIBC_2.17+0x320>
> 0.00 : 66454: ldr x0, [x0, #3624]
> 0.00 : 66458: mrs x1, tpidr_el0
> 0.00 : 6645c: mov w2, #0x16 // #22
> 0.00 : 66460: mov x24, #0xffffffffffffffff // #-1
> 0.00 : 66464: str w2, [x1, x0]
> 0.00 : 66468: b 66370 <__getdelim@@GLIBC_2.17+0x1f0>
> 0.00 : 6646c: ldr w1, [x20]
> 0.00 : 66470: mov x4, x0
> 0.00 : 66474: tbnz w1, #15, 6648c <__getdelim@@GLIBC_2.17+0x30c>
> 0.00 : 66478: ldr x0, [x20, #136]
> 0.00 : 6647c: ldr w1, [x0, #4]
> 0.00 : 66480: sub w1, w1, #0x1
> 0.00 : 66484: str w1, [x0, #4]
> 0.00 : 66488: cbz w1, 66494 <__getdelim@@GLIBC_2.17+0x314>
> 0.00 : 6648c: mov x0, x4
> 0.00 : 66490: bl 20e40 <gnu_get_libc_version@@GLIBC_2.17+0x130>
> 0.00 : 66494: str xzr, [x0, #8]
> 0.00 : 66498: ldxr w2, [x0]
> 0.00 : 6649c: stlxr w3, w1, [x0]
> 0.00 : 664a0: cbnz w3, 66498 <__getdelim@@GLIBC_2.17+0x318>
> 0.00 : 664a4: cmp w2, #0x1
> 0.00 : 664a8: b.le 6648c <__getdelim@@GLIBC_2.17+0x30c>
> 0.00 : 664ac: mov x1, #0x81 // #129
> 0.00 : 664b0: mov x2, #0x1 // #1
> 0.00 : 664b4: mov x3, #0x0 // #0
> 0.00 : 664b8: mov x8, #0x62 // #98
> 0.00 : 664bc: svc #0x0
> 0.00 : 664c0: b 6648c <__getdelim@@GLIBC_2.17+0x30c>
>
> Signed-off-by: Yang Jihong <yangjihong1@huawei.com>
> Tested-by: Leo Yan <leo.yan@linaro.org>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
> ---
>
> Changes since v3:
> - Set hook function of "id_index" for Intel PT sample mode.
>
> Changes since v2:
> - Updating tools/perf/Documentation/perf-annotate.txt.
> - Add test result to commit message.
>
> Changes since v1:
> - Adjust spaces to maintain alignment in "tool".
>
> tools/perf/Documentation/perf-annotate.txt | 7 +++++++
> tools/perf/builtin-annotate.c | 11 +++++++++++
> 2 files changed, 18 insertions(+)
>
> diff --git a/tools/perf/Documentation/perf-annotate.txt b/tools/perf/Documentation/perf-annotate.txt
> index 80c1be5d566c..33c2521cba4a 100644
> --- a/tools/perf/Documentation/perf-annotate.txt
> +++ b/tools/perf/Documentation/perf-annotate.txt
> @@ -58,6 +58,13 @@ OPTIONS
> --ignore-vmlinux::
> Ignore vmlinux files.
>
> +--itrace::
> + Options for decoding instruction tracing data. The options are:
> +
> +include::itrace.txt[]
> +
> + To disable decoding entirely, use --no-itrace.
> +
> -m::
> --modules::
> Load module symbols. WARNING: use only with -k and LIVE kernel.
> diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
> index 49627a7bed7c..cebb861be3e3 100644
> --- a/tools/perf/builtin-annotate.c
> +++ b/tools/perf/builtin-annotate.c
> @@ -474,6 +474,9 @@ int cmd_annotate(int argc, const char **argv)
> .attr = perf_event__process_attr,
> .build_id = perf_event__process_build_id,
> .tracing_data = perf_event__process_tracing_data,
> + .id_index = perf_event__process_id_index,
> + .auxtrace_info = perf_event__process_auxtrace_info,
> + .auxtrace = perf_event__process_auxtrace,
> .feature = process_feature_event,
> .ordered_events = true,
> .ordering_requires_timestamps = true,
> @@ -483,6 +486,9 @@ int cmd_annotate(int argc, const char **argv)
> struct perf_data data = {
> .mode = PERF_DATA_MODE_READ,
> };
> + struct itrace_synth_opts itrace_synth_opts = {
> + .set = 0,
> + };
> struct option options[] = {
> OPT_STRING('i', "input", &input_name, "file",
> "input file name"),
> @@ -547,6 +553,9 @@ int cmd_annotate(int argc, const char **argv)
> OPT_CALLBACK(0, "percent-type", &annotate.opts, "local-period",
> "Set percent type local/global-period/hits",
> annotate_parse_percent_type),
> + OPT_CALLBACK_OPTARG(0, "itrace", &itrace_synth_opts, NULL, "opts",
> + "Instruction Tracing options\n" ITRACE_HELP,
> + itrace_parse_synth_opts),
>
> OPT_END()
> };
> @@ -591,6 +600,8 @@ int cmd_annotate(int argc, const char **argv)
> if (IS_ERR(annotate.session))
> return PTR_ERR(annotate.session);
>
> + annotate.session->itrace_synth_opts = &itrace_synth_opts;
> +
> annotate.has_br_stack = perf_header__has_feat(&annotate.session->header,
> HEADER_BRANCH_STACK);
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v4] perf annotate: Add itrace options support
2021-06-15 10:27 ` Adrian Hunter
@ 2021-06-16 9:36 ` Yang Jihong
2021-06-16 18:08 ` Arnaldo Carvalho de Melo
1 sibling, 0 replies; 4+ messages in thread
From: Yang Jihong @ 2021-06-16 9:36 UTC (permalink / raw)
To: Adrian Hunter, peterz, mingo, acme, mark.rutland,
alexander.shishkin, jolsa, namhyung, linux-perf-users,
linux-kernel
Hello, Adrian,
On 2021/6/15 18:27, Adrian Hunter wrote:
> On 15/06/21 12:17 pm, Yang Jihong wrote:
>> The "auxtrace_info" and "auxtrace" functions are not set in "tool" member of
>> "annotate". As a result, perf annotate does not support parsing itrace data.
>>
>> Before:
>>
>> # perf record -e arm_spe_0/branch_filter=1/ -a sleep 1
>> [ perf record: Woken up 9 times to write data ]
>> [ perf record: Captured and wrote 20.874 MB perf.data ]
>> # perf annotate --stdio
>> Error:
>> The perf.data data has no samples!
>>
>> Solution:
>> 1.Add itrace options in help,
>> 2.Set hook functions of "id_index", "auxtrace_info" and "auxtrace" in perf_tool.
>>
>> After:
>>
>> # perf record --all-user -e arm_spe_0/branch_filter=1/ ls
>> Couldn't synthesize bpf events.
>> perf.data
>> [ perf record: Woken up 1 times to write data ]
>> [ perf record: Captured and wrote 0.010 MB perf.data ]
>> # perf annotate --stdio
>> Percent | Source code & Disassembly of libc-2.28.so for branch-miss (1 samples, percent: local period)
>> ------------------------------------------------------------------------------------------------------------
>> :
>> :
>> :
>> : Disassembly of section .text:
>> :
>> : 0000000000066180 <__getdelim@@GLIBC_2.17>:
>> 0.00 : 66180: stp x29, x30, [sp, #-96]!
>> 0.00 : 66184: cmp x0, #0x0
>> 0.00 : 66188: ccmp x1, #0x0, #0x4, ne // ne = any
>> 0.00 : 6618c: mov x29, sp
>> 0.00 : 66190: stp x24, x25, [sp, #56]
>> 0.00 : 66194: stp x26, x27, [sp, #72]
>> 0.00 : 66198: str x28, [sp, #88]
>> 0.00 : 6619c: b.eq 66450 <__getdelim@@GLIBC_2.17+0x2d0> // b.none
>> 0.00 : 661a0: stp x22, x23, [x29, #40]
>> 0.00 : 661a4: mov x22, x1
>> 0.00 : 661a8: ldr w1, [x3]
>> 0.00 : 661ac: mov w23, w2
>> 0.00 : 661b0: stp x20, x21, [x29, #24]
>> 0.00 : 661b4: mov x20, x3
>> 0.00 : 661b8: mov x21, x0
>> 0.00 : 661bc: tbnz w1, #15, 66360 <__getdelim@@GLIBC_2.17+0x1e0>
>> 0.00 : 661c0: ldr x0, [x3, #136]
>> 0.00 : 661c4: ldr x2, [x0, #8]
>> 0.00 : 661c8: str x19, [x29, #16]
>> 0.00 : 661cc: mrs x19, tpidr_el0
>> 0.00 : 661d0: sub x19, x19, #0x700
>> 0.00 : 661d4: cmp x2, x19
>> 0.00 : 661d8: b.eq 663f0 <__getdelim@@GLIBC_2.17+0x270> // b.none
>> 0.00 : 661dc: mov w1, #0x1 // #1
>> 0.00 : 661e0: ldaxr w2, [x0]
>> 0.00 : 661e4: cmp w2, #0x0
>> 0.00 : 661e8: b.ne 661f4 <__getdelim@@GLIBC_2.17+0x74> // b.any
>> 0.00 : 661ec: stxr w3, w1, [x0]
>> 0.00 : 661f0: cbnz w3, 661e0 <__getdelim@@GLIBC_2.17+0x60>
>> 0.00 : 661f4: b.ne 66448 <__getdelim@@GLIBC_2.17+0x2c8> // b.any
>> 0.00 : 661f8: ldr x0, [x20, #136]
>> 0.00 : 661fc: ldr w1, [x20]
>> 0.00 : 66200: ldr w2, [x0, #4]
>> 0.00 : 66204: str x19, [x0, #8]
>> 0.00 : 66208: add w2, w2, #0x1
>> 0.00 : 6620c: str w2, [x0, #4]
>> 0.00 : 66210: tbnz w1, #5, 66388 <__getdelim@@GLIBC_2.17+0x208>
>> 0.00 : 66214: ldr x19, [x29, #16]
>> 0.00 : 66218: ldr x0, [x21]
>> 0.00 : 6621c: cbz x0, 66228 <__getdelim@@GLIBC_2.17+0xa8>
>> 0.00 : 66220: ldr x0, [x22]
>> 0.00 : 66224: cbnz x0, 6623c <__getdelim@@GLIBC_2.17+0xbc>
>> 0.00 : 66228: mov x0, #0x78 // #120
>> 0.00 : 6622c: str x0, [x22]
>> 0.00 : 66230: bl 20710 <malloc@plt>
>> 0.00 : 66234: str x0, [x21]
>> 0.00 : 66238: cbz x0, 66428 <__getdelim@@GLIBC_2.17+0x2a8>
>> 0.00 : 6623c: ldr x27, [x20, #8]
>> 0.00 : 66240: str x19, [x29, #16]
>> 0.00 : 66244: ldr x19, [x20, #16]
>> 0.00 : 66248: sub x19, x19, x27
>> 0.00 : 6624c: cmp x19, #0x0
>> 0.00 : 66250: b.le 66398 <__getdelim@@GLIBC_2.17+0x218>
>> 0.00 : 66254: mov x25, #0x0 // #0
>> 0.00 : 66258: b 662d8 <__getdelim@@GLIBC_2.17+0x158>
>> 0.00 : 6625c: nop
>> 0.00 : 66260: add x24, x19, x25
>> 0.00 : 66264: ldr x3, [x22]
>> 0.00 : 66268: add x26, x24, #0x1
>> 0.00 : 6626c: ldr x0, [x21]
>> 0.00 : 66270: cmp x3, x26
>> 0.00 : 66274: b.cs 6629c <__getdelim@@GLIBC_2.17+0x11c> // b.hs, b.nlast
>> 0.00 : 66278: lsl x3, x3, #1
>> 0.00 : 6627c: cmp x3, x26
>> 0.00 : 66280: csel x26, x3, x26, cs // cs = hs, nlast
>> 0.00 : 66284: mov x1, x26
>> 0.00 : 66288: bl 206f0 <realloc@plt>
>> 0.00 : 6628c: cbz x0, 66438 <__getdelim@@GLIBC_2.17+0x2b8>
>> 0.00 : 66290: str x0, [x21]
>> 0.00 : 66294: ldr x27, [x20, #8]
>> 0.00 : 66298: str x26, [x22]
>> 0.00 : 6629c: mov x2, x19
>> 0.00 : 662a0: mov x1, x27
>> 0.00 : 662a4: add x0, x0, x25
>> 0.00 : 662a8: bl 87390 <explicit_bzero@@GLIBC_2.25+0x50>
>> 0.00 : 662ac: ldr x0, [x20, #8]
>> 0.00 : 662b0: add x19, x0, x19
>> 0.00 : 662b4: str x19, [x20, #8]
>> 0.00 : 662b8: cbnz x28, 66410 <__getdelim@@GLIBC_2.17+0x290>
>> 0.00 : 662bc: mov x0, x20
>> 0.00 : 662c0: bl 73b80 <__underflow@@GLIBC_2.17>
>> 0.00 : 662c4: cmn w0, #0x1
>> 0.00 : 662c8: b.eq 66410 <__getdelim@@GLIBC_2.17+0x290> // b.none
>> 0.00 : 662cc: ldp x27, x19, [x20, #8]
>> 0.00 : 662d0: mov x25, x24
>> 0.00 : 662d4: sub x19, x19, x27
>> 0.00 : 662d8: mov x2, x19
>> 0.00 : 662dc: mov w1, w23
>> 0.00 : 662e0: mov x0, x27
>> 0.00 : 662e4: bl 807b0 <memchr@@GLIBC_2.17>
>> 0.00 : 662e8: cmp x0, #0x0
>> 0.00 : 662ec: mov x28, x0
>> 0.00 : 662f0: sub x0, x0, x27
>> 0.00 : 662f4: csinc x19, x19, x0, eq // eq = none
>> 0.00 : 662f8: mov x0, #0x7fffffffffffffff // #9223372036854775807
>> 0.00 : 662fc: sub x0, x0, x25
>> 0.00 : 66300: cmp x19, x0
>> 0.00 : 66304: b.lt 66260 <__getdelim@@GLIBC_2.17+0xe0> // b.tstop
>> 0.00 : 66308: adrp x0, 17f000 <sys_sigabbrev@@GLIBC_2.17+0x320>
>> 0.00 : 6630c: ldr x0, [x0, #3624]
>> 0.00 : 66310: mrs x2, tpidr_el0
>> 0.00 : 66314: ldr x19, [x29, #16]
>> 0.00 : 66318: mov w3, #0x4b // #75
>> 0.00 : 6631c: ldr w1, [x20]
>> 0.00 : 66320: mov x24, #0xffffffffffffffff // #-1
>> 0.00 : 66324: str w3, [x2, x0]
>> 0.00 : 66328: tbnz w1, #15, 66340 <__getdelim@@GLIBC_2.17+0x1c0>
>> 0.00 : 6632c: ldr x0, [x20, #136]
>> 0.00 : 66330: ldr w1, [x0, #4]
>> 0.00 : 66334: sub w1, w1, #0x1
>> 0.00 : 66338: str w1, [x0, #4]
>> 0.00 : 6633c: cbz w1, 663b8 <__getdelim@@GLIBC_2.17+0x238>
>> 0.00 : 66340: mov x0, x24
>> 0.00 : 66344: ldr x28, [sp, #88]
>> 0.00 : 66348: ldp x20, x21, [x29, #24]
>> 0.00 : 6634c: ldp x22, x23, [x29, #40]
>> 0.00 : 66350: ldp x24, x25, [sp, #56]
>> 0.00 : 66354: ldp x26, x27, [sp, #72]
>> 0.00 : 66358: ldp x29, x30, [sp], #96
>> 0.00 : 6635c: ret
>> 100.00 : 66360: tbz w1, #5, 66218 <__getdelim@@GLIBC_2.17+0x98>
>> 0.00 : 66364: ldp x20, x21, [x29, #24]
>> 0.00 : 66368: mov x24, #0xffffffffffffffff // #-1
>> 0.00 : 6636c: ldp x22, x23, [x29, #40]
>> 0.00 : 66370: mov x0, x24
>> 0.00 : 66374: ldp x24, x25, [sp, #56]
>> 0.00 : 66378: ldp x26, x27, [sp, #72]
>> 0.00 : 6637c: ldr x28, [sp, #88]
>> 0.00 : 66380: ldp x29, x30, [sp], #96
>> 0.00 : 66384: ret
>> 0.00 : 66388: mov x24, #0xffffffffffffffff // #-1
>> 0.00 : 6638c: ldr x19, [x29, #16]
>> 0.00 : 66390: b 66328 <__getdelim@@GLIBC_2.17+0x1a8>
>> 0.00 : 66394: nop
>> 0.00 : 66398: mov x0, x20
>> 0.00 : 6639c: bl 73b80 <__underflow@@GLIBC_2.17>
>> 0.00 : 663a0: cmn w0, #0x1
>> 0.00 : 663a4: b.eq 66438 <__getdelim@@GLIBC_2.17+0x2b8> // b.none
>> 0.00 : 663a8: ldp x27, x19, [x20, #8]
>> 0.00 : 663ac: sub x19, x19, x27
>> 0.00 : 663b0: b 66254 <__getdelim@@GLIBC_2.17+0xd4>
>> 0.00 : 663b4: nop
>> 0.00 : 663b8: str xzr, [x0, #8]
>> 0.00 : 663bc: ldxr w2, [x0]
>> 0.00 : 663c0: stlxr w3, w1, [x0]
>> 0.00 : 663c4: cbnz w3, 663bc <__getdelim@@GLIBC_2.17+0x23c>
>> 0.00 : 663c8: cmp w2, #0x1
>> 0.00 : 663cc: b.le 66340 <__getdelim@@GLIBC_2.17+0x1c0>
>> 0.00 : 663d0: mov x1, #0x81 // #129
>> 0.00 : 663d4: mov x2, #0x1 // #1
>> 0.00 : 663d8: mov x3, #0x0 // #0
>> 0.00 : 663dc: mov x8, #0x62 // #98
>> 0.00 : 663e0: svc #0x0
>> 0.00 : 663e4: ldp x20, x21, [x29, #24]
>> 0.00 : 663e8: ldp x22, x23, [x29, #40]
>> 0.00 : 663ec: b 66370 <__getdelim@@GLIBC_2.17+0x1f0>
>> 0.00 : 663f0: ldr w2, [x0, #4]
>> 0.00 : 663f4: add w2, w2, #0x1
>> 0.00 : 663f8: str w2, [x0, #4]
>> 0.00 : 663fc: tbz w1, #5, 66214 <__getdelim@@GLIBC_2.17+0x94>
>> 0.00 : 66400: mov x24, #0xffffffffffffffff // #-1
>> 0.00 : 66404: ldr x19, [x29, #16]
>> 0.00 : 66408: b 66330 <__getdelim@@GLIBC_2.17+0x1b0>
>> 0.00 : 6640c: nop
>> 0.00 : 66410: ldr x0, [x21]
>> 0.00 : 66414: strb wzr, [x0, x24]
>> 0.00 : 66418: ldr w1, [x20]
>> 0.00 : 6641c: ldr x19, [x29, #16]
>> 0.00 : 66420: b 66328 <__getdelim@@GLIBC_2.17+0x1a8>
>> 0.00 : 66424: nop
>> 0.00 : 66428: mov x24, #0xffffffffffffffff // #-1
>> 0.00 : 6642c: ldr w1, [x20]
>> 0.00 : 66430: b 66328 <__getdelim@@GLIBC_2.17+0x1a8>
>> 0.00 : 66434: nop
>> 0.00 : 66438: mov x24, #0xffffffffffffffff // #-1
>> 0.00 : 6643c: ldr w1, [x20]
>> 0.00 : 66440: ldr x19, [x29, #16]
>> 0.00 : 66444: b 66328 <__getdelim@@GLIBC_2.17+0x1a8>
>> 0.00 : 66448: bl e3ba0 <pthread_setcanceltype@@GLIBC_2.17+0x30>
>> 0.00 : 6644c: b 661f8 <__getdelim@@GLIBC_2.17+0x78>
>> 0.00 : 66450: adrp x0, 17f000 <sys_sigabbrev@@GLIBC_2.17+0x320>
>> 0.00 : 66454: ldr x0, [x0, #3624]
>> 0.00 : 66458: mrs x1, tpidr_el0
>> 0.00 : 6645c: mov w2, #0x16 // #22
>> 0.00 : 66460: mov x24, #0xffffffffffffffff // #-1
>> 0.00 : 66464: str w2, [x1, x0]
>> 0.00 : 66468: b 66370 <__getdelim@@GLIBC_2.17+0x1f0>
>> 0.00 : 6646c: ldr w1, [x20]
>> 0.00 : 66470: mov x4, x0
>> 0.00 : 66474: tbnz w1, #15, 6648c <__getdelim@@GLIBC_2.17+0x30c>
>> 0.00 : 66478: ldr x0, [x20, #136]
>> 0.00 : 6647c: ldr w1, [x0, #4]
>> 0.00 : 66480: sub w1, w1, #0x1
>> 0.00 : 66484: str w1, [x0, #4]
>> 0.00 : 66488: cbz w1, 66494 <__getdelim@@GLIBC_2.17+0x314>
>> 0.00 : 6648c: mov x0, x4
>> 0.00 : 66490: bl 20e40 <gnu_get_libc_version@@GLIBC_2.17+0x130>
>> 0.00 : 66494: str xzr, [x0, #8]
>> 0.00 : 66498: ldxr w2, [x0]
>> 0.00 : 6649c: stlxr w3, w1, [x0]
>> 0.00 : 664a0: cbnz w3, 66498 <__getdelim@@GLIBC_2.17+0x318>
>> 0.00 : 664a4: cmp w2, #0x1
>> 0.00 : 664a8: b.le 6648c <__getdelim@@GLIBC_2.17+0x30c>
>> 0.00 : 664ac: mov x1, #0x81 // #129
>> 0.00 : 664b0: mov x2, #0x1 // #1
>> 0.00 : 664b4: mov x3, #0x0 // #0
>> 0.00 : 664b8: mov x8, #0x62 // #98
>> 0.00 : 664bc: svc #0x0
>> 0.00 : 664c0: b 6648c <__getdelim@@GLIBC_2.17+0x30c>
>>
>> Signed-off-by: Yang Jihong <yangjihong1@huawei.com>
>> Tested-by: Leo Yan <leo.yan@linaro.org>
>
> Acked-by: Adrian Hunter <adrian.hunter@intel.com>
>
Thanks for your Acked-by. :)
Jihong.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v4] perf annotate: Add itrace options support
2021-06-15 10:27 ` Adrian Hunter
2021-06-16 9:36 ` Yang Jihong
@ 2021-06-16 18:08 ` Arnaldo Carvalho de Melo
1 sibling, 0 replies; 4+ messages in thread
From: Arnaldo Carvalho de Melo @ 2021-06-16 18:08 UTC (permalink / raw)
To: Adrian Hunter
Cc: Yang Jihong, peterz, mingo, mark.rutland, alexander.shishkin,
jolsa, namhyung, linux-perf-users, linux-kernel
Em Tue, Jun 15, 2021 at 01:27:25PM +0300, Adrian Hunter escreveu:
> On 15/06/21 12:17 pm, Yang Jihong wrote:
> > The "auxtrace_info" and "auxtrace" functions are not set in "tool" member of
> > "annotate". As a result, perf annotate does not support parsing itrace data.
<SNIP>
> > Signed-off-by: Yang Jihong <yangjihong1@huawei.com>
> > Tested-by: Leo Yan <leo.yan@linaro.org>
>
> Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Thanks, applied.
- Arnaldo
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-06-16 18:08 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-15 9:17 [PATCH v4] perf annotate: Add itrace options support Yang Jihong
2021-06-15 10:27 ` Adrian Hunter
2021-06-16 9:36 ` Yang Jihong
2021-06-16 18:08 ` Arnaldo Carvalho de Melo
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.