• Namhyung Kim's avatar
    perf annotate-data: Support folding in TUI browser · 05fc5b7d
    Namhyung Kim authored
    Like in the hists browser, it should support folding current entry so
    that it can hide unwanted details in some data structures.
    
    The folded entries will be displayed with the '+' sign, while unfolded
    entries will have the '-' sign.
    
    Entries that have no children will not show any signs.
    
      Annotate type: 'struct socket' (1 samples)
            Percent     Offset       Size  Field
      -      100.00          0        128  struct socket {                                  ◆
               0.00          0          4      socket_state   state;                        ▒
               0.00          4          2      short int      type;                         ▒
               0.00          8          8      long unsigned int      flags;                ▒
               0.00         16          8      struct file*   file;                         ▒
             100.00         24          8      struct sock*   sk;                           ▒
               0.00         32          8      struct proto_ops*      ops;                  ▒
      -        0.00         64         64      struct socket_wq       wq {                  ▒
      -        0.00         64         24          wait_queue_head_t  wait {                ▒
      +        0.00         64          4              spinlock_t     lock;                 ▒
      -        0.00         72         16              struct list_head       head {        ▒
               0.00         72          8                  struct list_head*  next;         ▒
               0.00         80          8                  struct list_head*  prev;         ▒
                                                       };                                   ▒
                                                   };                                       ▒
               0.00         88          8          struct fasync_struct*      fasync_list;  ▒
               0.00         96          8          long unsigned int  flags;                ▒
      +        0.00        104         16          struct callback_head       rcu;          ▒
                                               };                                           ▒
                                           };                                               ▒
    
    This just adds the display logic for folding, actually folding action
    will be implemented in the next patch.
    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: Kan Liang <kan.liang@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20240812194447.2049187-2-namhyung@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    05fc5b7d
annotate-data.c 12.5 KB