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

From: Waiman Long
Date: Mon Sep 29 2014 - 14:40:54 EST


On 09/29/2014 02:09 PM, Arnaldo Carvalho de Melo wrote:
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

Sure, I will send out a new patch which includes the suggested change.

Thanks for the review.

-Longman
--
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/