Re: Make perf script easier to use for itrace

Jiri Olsa
2018-08-30T08:42:42Z

On Wed, Aug 29, 2018 at 10:18:24AM -0700, Andi Kleen wrote:

SNIP

>
> Filter by a ftrace style graph function:
>
> % perf script --graph-function group_sched_in --call-trace
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) group_sched_in
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) __x86_indirect_thunk_rax
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) event_sched_in.isra.107
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_event_set_state.part.71
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_event_update_time
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_pmu_disable
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_log_itrace_start
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) __x86_indirect_thunk_rax
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_event_update_userpage
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) calc_timer_values
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) sched_clock_cpu
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) __x86_indirect_thunk_rax
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) arch_perf_update_userpage
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) __fentry__
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) using_native_sched_clock
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) sched_clock_stable
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) perf_pmu_enable
> perf 900 [000] 194167.205652203: ([kernel.kallsyms]) __x86_indirect_thunk_rax
>
>
> Also available in
> git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-misc.git pt/easy-script-2

got compile error over your branch, might be one of the new fancy gcc8 checksm not sure
gcc version 8.1.1 20180712 (Red Hat 8.1.1-5) (GCC)

jirka

---
[jolsa@krava perf]$ make JOBS=1
BUILD: Doing 'make -j1' parallel build
CC builtin-script.o
builtin-script.c: In function ‘parse_output_fields’:
builtin-script.c:2571:22: error: array subscript 7 is above array bounds of ‘struct <anonymous>[7]’ [-Werror=array-bounds]
output[j].fields &= ~all_output_options[i].field;
^~
builtin-script.c:2571:22: error: array subscript 7 is above array bounds of ‘struct <anonymous>[7]’ [-Werror=array-bounds]
output[j].fields &= ~all_output_options[i].field;
~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
builtin-script.c:2574:10: error: array subscript 7 is above array bounds of ‘struct <anonymous>[7]’ [-Werror=array-bounds]
output[j].user_set = true;
~~~~~~^~~
builtin-script.c:2575:10: error: array subscript 7 is above array bounds of ‘struct <anonymous>[7]’ [-Werror=array-bounds]
output[j].wildcard_set = true;
~~~~~~^~~
builtin-script.c: In function ‘parse_output_fields.constprop’:
builtin-script.c:2571:22: error: array subscript 7 is above array bounds of ‘struct <anonymous>[7]’ [-Werror=array-bounds]
output[j].fields &= ~all_output_options[i].field;
^~
builtin-script.c:2571:22: error: array subscript 7 is above array bounds of ‘struct <anonymous>[7]’ [-Werror=array-bounds]
output[j].fields &= ~all_output_options[i].field;
~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
builtin-script.c:2574:10: error: array subscript 7 is above array bounds of ‘struct <anonymous>[7]’ [-Werror=array-bounds]
output[j].user_set = true;
~~~~~~^~~
builtin-script.c:2575:10: error: array subscript 7 is above array bounds of ‘struct <anonymous>[7]’ [-Werror=array-bounds]
output[j].wildcard_set = true;
~~~~~~^~~
cc1: all warnings being treated as errors
mv: cannot stat './.builtin-script.o.tmp': No such file or directory
make[3]: *** [/home/jolsa/kernel/linux-perf/tools/build/Makefile.build:97: builtin-script.o] Error 1
make[2]: *** [Makefile.perf:507: perf-in.o] Error 2
make[1]: *** [Makefile.perf:206: sub-make] Error 2
make: *** [Makefile:70: all] Error 2