Re: [PATCH v4 1/2] perf tool: encapsulate dsos list head into struct dsos

From: Arnaldo Carvalho de Melo
Date: Mon Sep 29 2014 - 14:10:37 EST


Em Mon, Sep 29, 2014 at 01:30:07PM -0400, Waiman Long escreveu:
> On 09/28/2014 11:54 PM, Namhyung Kim wrote:
> >On Fri, 26 Sep 2014 11:06:25 -0300, Arnaldo Carvalho de Melo wrote:
> >>Em Wed, Sep 24, 2014 at 11:45:39AM -0400, Waiman Long escreveu:
> >>>This is a precursor patch to enable long name searching of DSOs
> >>>using the rbtree. In this patch, a new dsos structure is created
> >>>which contains only a list head structure for the moment. The new
> >>>dsos structure is used, in turn, in the machine structure for the
> >>>user_dsos and kernel_dsos fields. Only the following 3 dsos functions
> >>>are modified to accept the new dsos structure parameter instead
> >>>of list_head:
> >>> - dsos__add()
> >>> - dsos__find()
> >>> - __dsos__findnew()
> >>>
> >>>Because of the need to find out the corresponding dsos structure to
> >>>properly call dsos__add() in dso__load_sym() of util/symbol-elf.c,
> >>>a new dsos field is also added to the dso structure.
> >>Argh, yeah, that is unfortunate that we need to add entries that deep
> >>inside dso__load_syms() :-\
> >But it seems we can use map->groups->machine to find out the head/root
> >of the dsos..

> There are 2 dsos at the machine structure level - user_dsos and kernel_dsos.
> In this particular case, it should be kernel_dsos. I can remove the dsos
> pointer and hardcode it to use the kernel_dsos if you guys think it is
> acceptable.

Yes, I think that if we have already how to obtain the head/root where
we want to insert things from structures present at that point in the
code, no need to add it to the per-dso data structure.

Thanks to Namhyung for finding an existing way of getting to the needed
data structures.

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/