[PATCH v4 0/2] perf tool: improves DSO long names search speed with rbtree

From: Waiman Long
Date: Wed Sep 24 2014 - 11:46:02 EST


v3->v4:
- As suggested by Arnaldo, keep the DSO linked list for iteration
purpose and create a new dsos structure to host the dual list
head and rbtree root for DSOs inside the machine structure.

v2->v3:
- Move the rbtree linking operation from dso__set_long_name() to
dsos__add(), where the list_add() operation was done.
- Add a second patch to remove the linked list and iterates the
DSO structures by going through them in the rbtree. This requires
changes in quite a number of files, but it makes for neater code.
- Rebased to the 3.17-rc5 kernel.

v1->v2:
- Rename DSO longname RBtree find function to segregate its two
different uses of searching and linking DSO into RB tree.

This patch set adds a rbtree for linking the DSO structures of the
perf tool sorted by their long names in additional to the linked list
which is of no specific order. The list enables fast iterations of
the DSOs and the rbtree root allows fast lookup by long name. The
latter use can significantly speed up DSO processing when a large
number of DSOs are beining profiled.

Waiman Long (2):
perf tool: encapsulate dsos list head into struct dsos
perf tool: improves DSO long names lookup speed with rbtree

tools/perf/util/dso.c | 90 ++++++++++++++++++++++++++++++++++++-----
tools/perf/util/dso.h | 10 +++-
tools/perf/util/header.c | 32 ++++++++------
tools/perf/util/machine.c | 24 +++++-----
tools/perf/util/machine.h | 13 +++++-
tools/perf/util/probe-event.c | 3 +-
tools/perf/util/symbol-elf.c | 2 +-
7 files changed, 130 insertions(+), 44 deletions(-)

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