diff options
author | Davidlohr Bueso <dave@stgolabs.net> | 2018-12-06 11:18:15 -0800 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2019-01-25 15:12:09 +0100 |
commit | 55ecd6310f9fe48cf7e435be408862da1e0e6baa (patch) | |
tree | f4f4d1c79b4404d488f1e2a1c22660862a1561cc /tools/perf/util/dso.h | |
parent | f3acb3a8a2081344801974ac5ec8e1b0d6f0ef36 (diff) | |
download | lwn-55ecd6310f9fe48cf7e435be408862da1e0e6baa.tar.gz lwn-55ecd6310f9fe48cf7e435be408862da1e0e6baa.zip |
perf callchain: Use cached rbtrees
At the cost of an extra pointer, we can avoid the O(logN) cost of
finding the first element in the tree (smallest node), which is
something required for nearly every in/srcline callchain node deletion
(in/srcline__tree_delete()).
Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/20181206191819.30182-4-dave@stgolabs.net
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/dso.h')
-rw-r--r-- | tools/perf/util/dso.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/tools/perf/util/dso.h b/tools/perf/util/dso.h index 2de54c0b26b2..40edfb375a8b 100644 --- a/tools/perf/util/dso.h +++ b/tools/perf/util/dso.h @@ -143,8 +143,8 @@ struct dso { struct rb_root *root; /* root of rbtree that rb_node is in */ struct rb_root symbols; struct rb_root symbol_names; - struct rb_root inlined_nodes; - struct rb_root srclines; + struct rb_root_cached inlined_nodes; + struct rb_root_cached srclines; struct { u64 addr; struct symbol *symbol; |