Re: [PATCH 0/3] perf annotate-data: Implement folding in TUI browser

From: Arnaldo Carvalho de Melo
Date: Mon Aug 12 2024 - 16:46:30 EST


On Mon, Aug 12, 2024 at 12:44:44PM -0700, Namhyung Kim wrote:
> Hello,
>
> I've implemented the folding logic to expand/collapse the current entry
> in the TUI data type browser. Users can use 'e' or 'E' to toggle the
> entry (with or without children, respectively).
>
> Ax example output looks like below.
>
> 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; ▒
> }; ▒
> }; ▒
>
> It hides the detail of spinlock_t and struct callback_head.

Thanks, useful feature! All tested and applied.

- Arnaldo