Messages in this thread Patch in this message | | | Date | Mon, 21 May 2018 14:43:26 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH v4 3/3] perf annotate: Support '--group' option |
| |
Em Mon, May 21, 2018 at 10:57:46PM +0800, Jin Yao escreveu: > With the '--group' option, even for non-explicit group, perf annotate > will enable the group output. > > For example, > > perf record -e cycles,branches ./div > perf annotate main --stdio --group
You forgot to make the first line to include the group event string, i.e. for cycles,instructions it will show only this:
Percent | Source code & Disassembly of ld-2.26.so for cycles:u (1 samples) ---------------------------------------------------------------------------------------- : : : : Disassembly of section .text: : : 00000000000167e0 <__GI___tunables_init>: : __GI___tunables_init(): : /* Initialize the tunables list from the environment. For now we only use the : ENV_ALIAS to find values. Later we will also use the tunable names to find : values. */ : void : __tunables_init (char **envp) : { 0.00 0.00 : 167e0: push %r15 0.00 0.00 : 167e2: push %r14
I'm applying the patch, this can be done on top,
- Arnaldo
> > : Disassembly of section .text: > : > : 00000000004004b0 <main>: > : main(): > : > : return i; > : } > : > : int main(void) > : { > 0.00 0.00 : 4004b0: push %rbx > : int i; > : int flag; > : volatile double x = 1212121212, y = 121212; > : > : s_randseed = time(0); > 0.00 0.00 : 4004b1: xor %edi,%edi > : srand(s_randseed); > 0.00 0.00 : 4004b3: mov $0x77359400,%ebx > : > : return i; > : } > : > > But if without --group, there is only one event reported. > > perf annotate main --stdio > > : Disassembly of section .text: > : > : 00000000004004b0 <main>: > : main(): > : > : return i; > : } > : > : int main(void) > : { > 0.00 : 4004b0: push %rbx > : int i; > : int flag; > : volatile double x = 1212121212, y = 121212; > : > : s_randseed = time(0); > 0.00 : 4004b1: xor %edi,%edi > : srand(s_randseed); > 0.00 : 4004b3: mov $0x77359400,%ebx > : > : return i; > : } > > Signed-off-by: Jin Yao <yao.jin@linux.intel.com> > --- > tools/perf/builtin-annotate.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c > index 6e5d9f7..da57042 100644 > --- a/tools/perf/builtin-annotate.c > +++ b/tools/perf/builtin-annotate.c > @@ -45,6 +45,7 @@ struct perf_annotate { > bool print_line; > bool skip_missing; > bool has_br_stack; > + bool group_set; > const char *sym_hist_filter; > const char *cpu_list; > DECLARE_BITMAP(cpu_bitmap, MAX_NR_CPUS); > @@ -508,6 +509,9 @@ int cmd_annotate(int argc, const char **argv) > "Don't shorten the displayed pathnames"), > OPT_BOOLEAN(0, "skip-missing", &annotate.skip_missing, > "Skip symbols that cannot be annotated"), > + OPT_BOOLEAN_SET(0, "group", &symbol_conf.event_group, > + &annotate.group_set, > + "Show event group information together"), > OPT_STRING('C', "cpu", &annotate.cpu_list, "cpu", "list of cpus to profile"), > OPT_CALLBACK(0, "symfs", NULL, "directory", > "Look for files with symbols relative to this directory", > @@ -570,6 +574,9 @@ int cmd_annotate(int argc, const char **argv) > annotate.has_br_stack = perf_header__has_feat(&annotate.session->header, > HEADER_BRANCH_STACK); > > + if (annotate.group_set) > + perf_evlist__force_leader(annotate.session->evlist); > + > ret = symbol__annotation_init(); > if (ret < 0) > goto out_delete; > -- > 2.7.4
| |