Re: [PATCH 2/2] perf annotate: Update dso binary type when try build-id

From: Arnaldo Carvalho de Melo
Date: Fri Apr 26 2024 - 21:09:34 EST


On Thu, Apr 25, 2024 at 11:49:49AM -0300, Arnaldo Carvalho de Melo wrote:
> On Thu, Apr 25, 2024 at 11:12:40AM -0300, Arnaldo Carvalho de Melo wrote:
> > On Wed, Apr 24, 2024 at 05:51:57PM -0700, Namhyung Kim wrote:
> > > +++ b/tools/perf/util/disasm.c
> > > @@ -1156,6 +1156,8 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil
> > > mutex_unlock(&dso->lock);
> > > + } else if (dso->binary_type == DSO_BINARY_TYPE__NOT_FOUND) {
> > > + dso->binary_type = DSO_BINARY_TYPE__BUILD_ID_CACHE;
> > > }
>
> > Fixed up to take into account a recent patch by Ian that turned that
> > &dso->lock into dso__lock(dso):
>
> > +++ b/tools/perf/util/disasm.c
> > @@ -1156,6 +1156,8 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil
> > }
> > }
> > mutex_unlock(dso__lock(dso));
> > + } else if (dso->binary_type == DSO_BINARY_TYPE__NOT_FOUND) {
> > + dso->binary_type = DSO_BINARY_TYPE__BUILD_ID_CACHE;
> > }
>
> Nah, I forgot some more stuff, this is what I have now:

Nah², I had to remove all these:

pick a58b4da77b40920f perf dsos: Switch backing storage to array from rbtree/list
pick 7d91cefd1fb63068 perf dsos: Remove __dsos__addnew()
pick 80c3ccf05199dbb6 perf dsos: Remove __dsos__findnew_link_by_longname_id()
pick af3f8dea24f47802 perf dsos: Switch hand code to bsearch()
pick 7537b92b48318834 perf dso: Add reference count checking and accessor functions
pick 9bd7c6fe8de22b37 perf dso: Reference counting related fixes
pick 4de57b46a0cb2027 perf dso: Use container_of() to avoid a pointer in 'struct dso_data'

Due to a bisect that pointed "perf dsos: Switch backing storage to array
from rbtree/list" as the one where:


root@x1:~# perf test "kernel lock contention analysis test"
87: kernel lock contention analysis test : FAILED!

- Arnaldo