Re: [PATCH v2 0/2] perf tools: annotation browser from c2c tui

From: Arnaldo Carvalho de Melo
Date: Wed Jun 14 2023 - 14:39:41 EST


Em Fri, Jun 09, 2023 at 10:37:31AM +0200, Artem Savkov escreveu:
> On Thu, Jun 08, 2023 at 02:09:06PM -0700, Namhyung Kim wrote:
> > Hello,
> >
> > On Thu, Jun 8, 2023 at 1:44 AM Artem Savkov <asavkov@xxxxxxxxxx> wrote:
> > >
> > > These patches add ability to start annotation browser from c2c report
> > > tui. The idea comes from Arnaldo's "Profiling Data Structures" talk [1].
> >
> > I was thinking about how it works and realized that it didn't collect
> > samples by symbol. Then I'm not sure if the result is meaningful.
> > I think it'd show a random symbol that touched the cache line
> > first. The same cache line can be accessed from other locations
> > but it cannot know where they are.
> >
> > Also different instructions in a function (symbol) would access a
> > different cache line. The annotate output just shows any memory
> > access. So it might be good to check the instruction at the point
> > but others should not be considered related.
> >
> > Hmm.. I suspect even the same instruction will hit the different
> > cache lines at different times. Then probably the annotation
> > won't work well in terms of correlating cache lines.
>
> The annotation hotkey is only added to the cacheline detailed view where
> we do have symbol instruction information. The idea is to give the user
> ability to quickly jump to source code/disassembly directly from c2c
> TUI.
>
> The hit percentages in annotation view don't make much sense in this
> case though, so maybe it is better to use dummy evsel so that none are
> shown.

Yes, the point is just to reuse the source browser, if there is no
annotation data applicable, don't use any.

- Arnaldo

> > Thanks,
> > Namhyung
> >
> > >
> > > [1]: http://vger.kernel.org/~acme/prez/linux-plumbers-2022/
> > >
> > > v1->v2: Addressed comments from Namhyung Kim
> > > - No longer saving evsel for each hist entry, using evlist__first
> > > instead.
> > > - Factored out preparations to call annotation browser to do_annotate()
> > > function
> > > - Other small fixes and adjustments.
> > >
> > > Artem Savkov (2):
> > > perf util: move symbol__new_unresolved() to util/symbol.c
> > > perf tools: allow running annotation browser from c2c-report
> > >
> > > tools/perf/builtin-c2c.c | 73 +++++++++++++++++++++++++++++++---
> > > tools/perf/ui/browsers/hists.c | 22 ----------
> > > tools/perf/util/symbol.c | 22 ++++++++++
> > > tools/perf/util/symbol.h | 1 +
> > > 4 files changed, 91 insertions(+), 27 deletions(-)
> > >
> > > --
> > > 2.40.1
> > >
> >
>
> --
> Artem
>

--

- Arnaldo