• Namhyung Kim's avatar
    perf annotate: Support event group display · 227ad323
    Namhyung Kim authored
    When events are grouped together, it'd be natural to show them at once
    like in other mode.  Handle group leaders with members to collect the
    number of samples together and display like below:
    
      $ perf annotate --data-type --group
      ...
      Annotate type: 'struct page' in vmlinux (1 samples):
       event[0] = cpu/mem-loads,ldlat=30/P
       event[1] = cpu/mem-stores/P
       event[2] = dummy:u
      ============================================================================
                                samples     offset       size  field
                1          0          0          0         64  struct page     {
                0          0          0          0          8      long unsigned int  flags;
                0          0          0          8         40      union       {
                0          0          0          8         40          struct          {
                0          0          0          8         16              union       {
                0          0          0          8         16                  struct list_head       lru {
                0          0          0          8          8                      struct list_head*  next;
                0          0          0         16          8                      struct list_head*  prev;
                                                                               };
                0          0          0          8         16                  struct          {
                0          0          0          8          8                      void*      __filler;
                0          0          0         16          4                      unsigned int       mlock_count;
                                                                               };
                0          0          0          8         16                  struct list_head       buddy_list {
                0          0          0          8          8                      struct list_head*  next;
                0          0          0         16          8                      struct list_head*  prev;
                                                                               };
    Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: linux-toolchains@vger.kernel.org
    Cc: linux-trace-devel@vger.kernel.org
    Link: https://lore.kernel.org/r/20231213001323.718046-16-namhyung@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    227ad323
builtin-annotate.c 23.3 KB