[PATCHSET v5 00/12] perf annotate: Support --code-with-type on TUI

Namhyung Kim posted 12 patches 1 month, 2 weeks ago
tools/perf/Documentation/perf-annotate.txt |   1 -
tools/perf/builtin-annotate.c              |   5 -
tools/perf/ui/browsers/annotate.c          | 117 ++++++++++++--
tools/perf/ui/browsers/hists.c             |   2 +-
tools/perf/util/annotate.c                 | 178 +++++++++++++++------
tools/perf/util/annotate.h                 |  29 ++--
tools/perf/util/dso.h                      |  21 +++
tools/perf/util/hist.h                     |  12 +-
8 files changed, 273 insertions(+), 92 deletions(-)
[PATCHSET v5 00/12] perf annotate: Support --code-with-type on TUI
Posted by Namhyung Kim 1 month, 2 weeks ago
Hello,

The --code-with-type option is to show normal annotate output with type
information.  It was supported only on --stdio, but this change adds it
to TUI as well.

Arnaldo, please tell me if you still don't like the
__hist_entry__tui_annotate() but I don't have a better idea for now.

v5 changes)
 * use a copy of hist entry for perf top  (Ian)
 * split disasm_line__write() change  (Ian)
 * constify annotation_write_ops parameter  (Ian)
 * update printed length calculation  (Ian)
 * remove annotation_print_data.start
 * add a hashmap to skip duplicate processing

v4 changes)
 * add dso__debuginfo() helper  (Ian)

v3 changes)
 * hide stack operation and stack canary by default

v2 changes)
 * use 'T' key to toggle data type display  (Arnaldo)
 * display '[Type]' in the title line when it's enabled  (Arnaldo)
 * show warning when debug info is not available  (Arnaldo)
 * fix a typo  (Arnaldo)

Actually the command line option sets the default behavior and users can
change it by pressing 'T' key in the TUI annotate browser.

The code is also available at 'perf/annotate-code-type-tui-v5' branch at
https://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git

Thanks,
Namhyung


Namhyung Kim (12):
  perf annotate: Rename to __hist_entry__tui_annotate()
  perf annotate: Remove annotation_print_data.start
  perf annotate: Remove __annotation_line__write()
  perf annotate: Pass annotation_print_data to annotation_line__write()
  perf annotate: Simplify width calculation in annotation_line__write()
  perf annotate: Return printed number from disasm_line__write()
  perf annotate: Add --code-with-type support for TUI
  perf annotate: Add 'T' hot key to toggle data type display
  perf annotate: Show warning when debuginfo is not available
  perf annotate: Hide data-type for stack operation and canary
  perf annotate: Add dso__debuginfo() helper
  perf annotate: Use a hashmap to save type data

 tools/perf/Documentation/perf-annotate.txt |   1 -
 tools/perf/builtin-annotate.c              |   5 -
 tools/perf/ui/browsers/annotate.c          | 117 ++++++++++++--
 tools/perf/ui/browsers/hists.c             |   2 +-
 tools/perf/util/annotate.c                 | 178 +++++++++++++++------
 tools/perf/util/annotate.h                 |  29 ++--
 tools/perf/util/dso.h                      |  21 +++
 tools/perf/util/hist.h                     |  12 +-
 8 files changed, 273 insertions(+), 92 deletions(-)

-- 
2.50.1
Re: [PATCHSET v5 00/12] perf annotate: Support --code-with-type on TUI
Posted by Arnaldo Carvalho de Melo 1 month, 2 weeks ago
On Fri, Aug 15, 2025 at 08:16:23PM -0700, Namhyung Kim wrote:
> 
> Hello,
> 
> The --code-with-type option is to show normal annotate output with type
> information.  It was supported only on --stdio, but this change adds it
> to TUI as well.
> 
> Arnaldo, please tell me if you still don't like the
> __hist_entry__tui_annotate() but I don't have a better idea for now.

Not a problem, I tested everything, all seems to work as advertised.

The minor suggestions I made I can do while merging, if you don't mind
and agree with them.

Please let me know.

Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>

- Arnaldo
 
> v5 changes)
>  * use a copy of hist entry for perf top  (Ian)
>  * split disasm_line__write() change  (Ian)
>  * constify annotation_write_ops parameter  (Ian)
>  * update printed length calculation  (Ian)
>  * remove annotation_print_data.start
>  * add a hashmap to skip duplicate processing
> 
> v4 changes)
>  * add dso__debuginfo() helper  (Ian)
> 
> v3 changes)
>  * hide stack operation and stack canary by default
> 
> v2 changes)
>  * use 'T' key to toggle data type display  (Arnaldo)
>  * display '[Type]' in the title line when it's enabled  (Arnaldo)
>  * show warning when debug info is not available  (Arnaldo)
>  * fix a typo  (Arnaldo)
> 
> Actually the command line option sets the default behavior and users can
> change it by pressing 'T' key in the TUI annotate browser.
> 
> The code is also available at 'perf/annotate-code-type-tui-v5' branch at
> https://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git
> 
> Thanks,
> Namhyung
> 
> 
> Namhyung Kim (12):
>   perf annotate: Rename to __hist_entry__tui_annotate()
>   perf annotate: Remove annotation_print_data.start
>   perf annotate: Remove __annotation_line__write()
>   perf annotate: Pass annotation_print_data to annotation_line__write()
>   perf annotate: Simplify width calculation in annotation_line__write()
>   perf annotate: Return printed number from disasm_line__write()
>   perf annotate: Add --code-with-type support for TUI
>   perf annotate: Add 'T' hot key to toggle data type display
>   perf annotate: Show warning when debuginfo is not available
>   perf annotate: Hide data-type for stack operation and canary
>   perf annotate: Add dso__debuginfo() helper
>   perf annotate: Use a hashmap to save type data
> 
>  tools/perf/Documentation/perf-annotate.txt |   1 -
>  tools/perf/builtin-annotate.c              |   5 -
>  tools/perf/ui/browsers/annotate.c          | 117 ++++++++++++--
>  tools/perf/ui/browsers/hists.c             |   2 +-
>  tools/perf/util/annotate.c                 | 178 +++++++++++++++------
>  tools/perf/util/annotate.h                 |  29 ++--
>  tools/perf/util/dso.h                      |  21 +++
>  tools/perf/util/hist.h                     |  12 +-
>  8 files changed, 273 insertions(+), 92 deletions(-)
> 
> -- 
> 2.50.1
Re: [PATCHSET v5 00/12] perf annotate: Support --code-with-type on TUI
Posted by Arnaldo Carvalho de Melo 1 month, 2 weeks ago
On Wed, Aug 20, 2025 at 06:40:53PM -0300, Arnaldo Carvalho de Melo wrote:
> On Fri, Aug 15, 2025 at 08:16:23PM -0700, Namhyung Kim wrote:
> > 
> > Hello,
> > 
> > The --code-with-type option is to show normal annotate output with type
> > information.  It was supported only on --stdio, but this change adds it
> > to TUI as well.
> > 
> > Arnaldo, please tell me if you still don't like the
> > __hist_entry__tui_annotate() but I don't have a better idea for now.
> 
> Not a problem, I tested everything, all seems to work as advertised.
> 
> The minor suggestions I made I can do while merging, if you don't mind
> and agree with them.

I mean the scope of a variable, a missing line before an if line, not
the other more involved one as the alignment of the type comments, etc.
:-)

- Arnaldo
 
> Please let me know.
> 
> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> - Arnaldo
>  
> > v5 changes)
> >  * use a copy of hist entry for perf top  (Ian)
> >  * split disasm_line__write() change  (Ian)
> >  * constify annotation_write_ops parameter  (Ian)
> >  * update printed length calculation  (Ian)
> >  * remove annotation_print_data.start
> >  * add a hashmap to skip duplicate processing
> > 
> > v4 changes)
> >  * add dso__debuginfo() helper  (Ian)
> > 
> > v3 changes)
> >  * hide stack operation and stack canary by default
> > 
> > v2 changes)
> >  * use 'T' key to toggle data type display  (Arnaldo)
> >  * display '[Type]' in the title line when it's enabled  (Arnaldo)
> >  * show warning when debug info is not available  (Arnaldo)
> >  * fix a typo  (Arnaldo)
> > 
> > Actually the command line option sets the default behavior and users can
> > change it by pressing 'T' key in the TUI annotate browser.
> > 
> > The code is also available at 'perf/annotate-code-type-tui-v5' branch at
> > https://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git
> > 
> > Thanks,
> > Namhyung
> > 
> > 
> > Namhyung Kim (12):
> >   perf annotate: Rename to __hist_entry__tui_annotate()
> >   perf annotate: Remove annotation_print_data.start
> >   perf annotate: Remove __annotation_line__write()
> >   perf annotate: Pass annotation_print_data to annotation_line__write()
> >   perf annotate: Simplify width calculation in annotation_line__write()
> >   perf annotate: Return printed number from disasm_line__write()
> >   perf annotate: Add --code-with-type support for TUI
> >   perf annotate: Add 'T' hot key to toggle data type display
> >   perf annotate: Show warning when debuginfo is not available
> >   perf annotate: Hide data-type for stack operation and canary
> >   perf annotate: Add dso__debuginfo() helper
> >   perf annotate: Use a hashmap to save type data
> > 
> >  tools/perf/Documentation/perf-annotate.txt |   1 -
> >  tools/perf/builtin-annotate.c              |   5 -
> >  tools/perf/ui/browsers/annotate.c          | 117 ++++++++++++--
> >  tools/perf/ui/browsers/hists.c             |   2 +-
> >  tools/perf/util/annotate.c                 | 178 +++++++++++++++------
> >  tools/perf/util/annotate.h                 |  29 ++--
> >  tools/perf/util/dso.h                      |  21 +++
> >  tools/perf/util/hist.h                     |  12 +-
> >  8 files changed, 273 insertions(+), 92 deletions(-)
> > 
> > -- 
> > 2.50.1
Re: [PATCHSET v5 00/12] perf annotate: Support --code-with-type on TUI
Posted by Namhyung Kim 1 month, 2 weeks ago
On Wed, Aug 20, 2025 at 06:43:03PM -0300, Arnaldo Carvalho de Melo wrote:
> On Wed, Aug 20, 2025 at 06:40:53PM -0300, Arnaldo Carvalho de Melo wrote:
> > On Fri, Aug 15, 2025 at 08:16:23PM -0700, Namhyung Kim wrote:
> > > 
> > > Hello,
> > > 
> > > The --code-with-type option is to show normal annotate output with type
> > > information.  It was supported only on --stdio, but this change adds it
> > > to TUI as well.
> > > 
> > > Arnaldo, please tell me if you still don't like the
> > > __hist_entry__tui_annotate() but I don't have a better idea for now.
> > 
> > Not a problem, I tested everything, all seems to work as advertised.
> > 
> > The minor suggestions I made I can do while merging, if you don't mind
> > and agree with them.
> 
> I mean the scope of a variable, a missing line before an if line, not
> the other more involved one as the alignment of the type comments, etc.
> :-)

I've left comments in each thread.

> 
> - Arnaldo
>  
> > Please let me know.
> > 
> > Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>

Thanks for your review and tests!
Namhyung

> > 
> > - Arnaldo
> >  
> > > v5 changes)
> > >  * use a copy of hist entry for perf top  (Ian)
> > >  * split disasm_line__write() change  (Ian)
> > >  * constify annotation_write_ops parameter  (Ian)
> > >  * update printed length calculation  (Ian)
> > >  * remove annotation_print_data.start
> > >  * add a hashmap to skip duplicate processing
> > > 
> > > v4 changes)
> > >  * add dso__debuginfo() helper  (Ian)
> > > 
> > > v3 changes)
> > >  * hide stack operation and stack canary by default
> > > 
> > > v2 changes)
> > >  * use 'T' key to toggle data type display  (Arnaldo)
> > >  * display '[Type]' in the title line when it's enabled  (Arnaldo)
> > >  * show warning when debug info is not available  (Arnaldo)
> > >  * fix a typo  (Arnaldo)
> > > 
> > > Actually the command line option sets the default behavior and users can
> > > change it by pressing 'T' key in the TUI annotate browser.
> > > 
> > > The code is also available at 'perf/annotate-code-type-tui-v5' branch at
> > > https://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git
> > > 
> > > Thanks,
> > > Namhyung
> > > 
> > > 
> > > Namhyung Kim (12):
> > >   perf annotate: Rename to __hist_entry__tui_annotate()
> > >   perf annotate: Remove annotation_print_data.start
> > >   perf annotate: Remove __annotation_line__write()
> > >   perf annotate: Pass annotation_print_data to annotation_line__write()
> > >   perf annotate: Simplify width calculation in annotation_line__write()
> > >   perf annotate: Return printed number from disasm_line__write()
> > >   perf annotate: Add --code-with-type support for TUI
> > >   perf annotate: Add 'T' hot key to toggle data type display
> > >   perf annotate: Show warning when debuginfo is not available
> > >   perf annotate: Hide data-type for stack operation and canary
> > >   perf annotate: Add dso__debuginfo() helper
> > >   perf annotate: Use a hashmap to save type data
> > > 
> > >  tools/perf/Documentation/perf-annotate.txt |   1 -
> > >  tools/perf/builtin-annotate.c              |   5 -
> > >  tools/perf/ui/browsers/annotate.c          | 117 ++++++++++++--
> > >  tools/perf/ui/browsers/hists.c             |   2 +-
> > >  tools/perf/util/annotate.c                 | 178 +++++++++++++++------
> > >  tools/perf/util/annotate.h                 |  29 ++--
> > >  tools/perf/util/dso.h                      |  21 +++
> > >  tools/perf/util/hist.h                     |  12 +-
> > >  8 files changed, 273 insertions(+), 92 deletions(-)
> > > 
> > > -- 
> > > 2.50.1