android_kernel_motorola_sm6225/tools/perf/util
Jiri Olsa 4dff624ae0 perf symbols: Add dso data caching
Adding dso data caching so we don't need to open/read/close, each time
we want dso data.

The DSO data caching affects following functions:
  dso__data_read_offset
  dso__data_read_addr

Each DSO read tries to find the data (based on offset) inside the cache.
If it's not present it fills the cache from file, and returns the data.
If it is present, data are returned with no file read.

Each data read is cached by reading cache page sized/aligned amount of
DSO data. The cache page size is hardcoded to 4096.  The cache is using
RB tree with file offset as a sort key.

Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Cc: Arun Sharma <asharma@fb.com>
Cc: Benjamin Redelings <benjamin.redelings@nescent.org>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Frank Ch. Eigler <fche@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Robert Richter <robert.richter@amd.com>
Cc: Stephane Eranian <eranian@google.com>
Cc: Tom Zanussi <tzanussi@gmail.com>
Cc: Ulrich Drepper <drepper@gmail.com>
Link: http://lkml.kernel.org/r/1342959280-5361-17-git-send-email-jolsa@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2012-07-25 11:33:04 -03:00
..
include perf tools: Adding round_up/round_down macros 2012-06-29 15:25:28 -03:00
scripting-engines tools lib traceevent: Add support for __print_hex() 2012-06-29 13:28:12 -03:00
abspath.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
alias.c perf_counter tools: Add more warnings and fix/annotate them 2009-07-01 12:49:48 +02:00
annotate.c perf symbols: Factor DSO symtab types to generic binary types 2012-07-25 11:32:36 -03:00
annotate.h perf annotate: Introduce ->free() method in ins_ops 2012-05-12 13:26:20 -03:00
bitmap.c perf tools: Add bitmap_or function into bitmap object 2012-02-13 23:28:10 -02:00
build-id.c perf buildid-list: Work better with pipe mode 2012-05-22 13:03:54 -03:00
build-id.h perf tools: Rename perf_event_ops to perf_tool 2011-11-28 10:39:28 -02:00
cache.h perf ui: Change fallback policy of setup_browser() 2012-05-02 16:17:37 -03:00
callchain.c perf callchain: Make callchain cursors TLS 2012-05-31 10:47:12 -03:00
callchain.h perf callchain: Make callchain cursors TLS 2012-05-31 10:47:12 -03:00
cgroup.c perf tools: Eliminate duplicate code and use PATH_MAX consistently 2011-11-28 10:11:04 -02:00
cgroup.h perf tool: Add cgroup support 2011-02-16 13:30:48 +01:00
color.c perf tools: Use scnprintf where applicable 2012-03-14 12:36:19 -03:00
color.h perf hist: Replace ->print() routines by ->snprintf() equivalents 2010-04-02 16:28:15 -03:00
config.c perf config: Allow '_' in config file variable names 2012-05-29 21:59:02 -03:00
cpumap.c perf tools: Add fprintf methods for thread_map and cpu_map classes 2012-01-24 19:46:48 -02:00
cpumap.h perf tools: Add fprintf methods for thread_map and cpu_map classes 2012-01-24 19:46:48 -02:00
ctype.c perf tools: ctype.c only wants util.h 2012-02-13 23:17:40 -02:00
debug.c perf ui: Introduce struct perf_error_ops 2012-06-19 13:06:18 -03:00
debug.h perf ui: Introduce struct perf_error_ops 2012-06-19 13:06:18 -03:00
debugfs.c perf tools: Remove unused functions from debugfs object 2012-02-13 23:25:38 -02:00
debugfs.h perf tools: Remove unused functions from debugfs object 2012-02-13 23:25:38 -02:00
dwarf-aux.c perf probe: Filter out redundant inline-instances 2011-08-12 09:34:35 -03:00
dwarf-aux.h perf probe: Search concrete out-of-line instances 2011-08-12 09:32:10 -03:00
environment.c
event.c perf tools: Ensure comm string is properly terminated 2012-02-29 18:29:45 -03:00
event.h perf tools: Add code to support PERF_SAMPLE_BRANCH_STACK 2012-03-09 08:26:04 +01:00
evlist.c perf tools: Fix trace events storms due to weight demux 2012-07-25 11:32:06 -03:00
evlist.h perf tools: Stop using a global trace events description list 2012-06-27 13:08:42 -03:00
evsel.c perf evsel: Handle hw breakpoints event names in perf_evsel__name() 2012-06-29 13:28:13 -03:00
evsel.h perf evsel: Make some methods private 2012-06-19 13:06:22 -03:00
exec_cmd.c perf tools: Makefile: Remove various and sundry cruft 2011-02-18 07:43:06 -02:00
exec_cmd.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
generate-cmdlist.sh
header.c perf tools: Dump exclude_{guest,host}, precise_ip header info too 2012-07-25 11:31:19 -03:00
header.h perf tools: rename HEADER_TRACE_INFO to HEADER_TRACING_DATA 2012-05-22 12:57:46 -03:00
help.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
help.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
hist.c perf hists: Print newline between hists callchains 2012-07-25 11:32:26 -03:00
hist.h perf tools: Add sort by src line/number 2012-06-19 13:06:18 -03:00
hweight.c perf tools: Don't use code surrounded by __KERNEL__ 2010-05-02 12:00:44 -03:00
levenshtein.c
levenshtein.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
map.c perf kvm: Limit repetitive guestmount message to once per directory 2012-07-25 11:31:03 -03:00
map.h perf kvm: Fix bug resolving guest kernel syms 2012-07-25 11:30:13 -03:00
pager.c perf tools: Fix pager on minimal-install embedded systems 2012-05-30 15:10:39 -03:00
parse-events-test.c perf test: Use ARRAY_SIZE in parse events tests 2012-07-04 11:31:26 -03:00
parse-events.c perf tools: Fix trace events storms due to weight demux 2012-07-25 11:32:06 -03:00
parse-events.h Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core 2012-06-20 13:41:53 +02:00
parse-events.l perf tools: Split out PE_VALUE_SYM parsing token to SW and HW tokens 2012-07-05 11:29:56 -03:00
parse-events.y perf tools: Split out PE_VALUE_SYM parsing token to SW and HW tokens 2012-07-05 11:29:56 -03:00
parse-options.c perf options: Type check all the remaining OPT_ variants 2010-05-17 16:22:41 -03:00
parse-options.h perf options: add OPT_CALLBACK_DEFAULT_NOOPT 2010-12-06 15:33:29 -02:00
path.c perf tools: add test for strlcpy() 2010-08-21 11:22:47 -03:00
PERF-VERSION-GEN perf tools: Make --version show kernel version instead of pull req tag 2012-05-31 11:20:59 -03:00
pmu.c perf tools: Fix generation of pmu list 2012-06-29 13:31:27 -03:00
pmu.h perf/tool: Add PMU event alias support 2012-06-18 12:13:26 +02:00
pmu.l perf tools: Add perf pmu object to access pmu format definition 2012-03-16 14:29:35 -03:00
pmu.y perf tools: Add perf pmu object to access pmu format definition 2012-03-16 14:29:35 -03:00
probe-event.c perf uprobes: Remove unnecessary check before strlist__delete 2012-05-31 12:08:49 -03:00
probe-event.h perf probe: Provide perf interface for uprobes 2012-05-11 13:58:17 -03:00
probe-finder.c perf probe: Finder fails to resolve function name to address 2012-03-28 11:56:49 -03:00
probe-finder.h perf tools: Eliminate duplicate code and use PATH_MAX consistently 2011-11-28 10:11:04 -02:00
pstack.c perf newt: Make <- zoom out filters 2010-05-14 20:05:21 -03:00
pstack.h perf ui: Move hists browser to util/ui/browsers/ 2010-08-10 16:11:08 -03:00
python-ext-sources perf tools: Allow multiple threads or processes in record, stat, top 2012-02-13 22:54:11 -02:00
python.c perf tools: Introduce per user view 2012-01-24 19:47:37 -02:00
quote.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
quote.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
run-command.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
run-command.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
session.c perf kvm: Fix bug resolving guest kernel syms 2012-07-25 11:30:13 -03:00
session.h perf tools: Stop using a global trace events description list 2012-06-27 13:08:42 -03:00
setup.py perf tools: Fix build dependency of perf python extension 2012-02-13 18:01:25 -02:00
sigchain.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
sigchain.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
sort.c perf tools: Add sort by src line/number 2012-06-19 13:06:18 -03:00
sort.h perf tools: Add sort by src line/number 2012-06-19 13:06:18 -03:00
strbuf.c perf tools: Use scnprintf where applicable 2012-03-14 12:36:19 -03:00
strbuf.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
strfilter.c perf: Fix missing strndup declaration 2011-03-04 01:17:18 +01:00
strfilter.h perf tools: Add strfilter for general purpose string filter 2011-01-28 09:19:38 -02:00
string.c perf lib: Introduce rtrim 2012-06-19 13:06:19 -03:00
strlist.c perf probe: Fix --del to update current event list 2009-12-15 20:22:01 +01:00
strlist.h perf tools: Add for_each macros for strlist 2009-12-15 20:22:02 +01:00
svghelper.c perf timechart: Fix black idle boxes in the title 2011-02-28 08:56:14 +01:00
svghelper.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
symbol.c perf symbols: Add dso data caching 2012-07-25 11:33:04 -03:00
symbol.h perf symbols: Add dso data caching 2012-07-25 11:33:04 -03:00
sysfs.c perf tools: Add sysfs mountpoint interface 2012-02-13 23:27:15 -02:00
sysfs.h perf tools: Add sysfs mountpoint interface 2012-02-13 23:27:15 -02:00
target.c perf tools: Introduce perf_target__strerror() 2012-05-07 17:30:21 -03:00
target.h perf target: Add uses_mmap field 2012-05-17 12:32:54 -03:00
thread.c perf session: Move threads to struct machine 2011-11-28 10:35:31 -02:00
thread.h perf tools: Resolve machine earlier and pass it to perf_event_ops 2011-11-28 10:39:12 -02:00
thread_map.c perf tools: fix thread_map__new_by_pid_str() memory leak in error path 2012-05-25 11:40:59 -03:00
thread_map.h perf tools: Fix thread map that is type pid_t 2012-04-11 17:38:50 -03:00
tool.h perf tools: Save some loops using perf_evlist__id2evsel 2011-11-28 17:57:40 -02:00
top.c perf tools: Move all users of event_name to perf_evsel__name 2012-06-19 13:06:20 -03:00
top.h perf top: Convert to struct perf_target 2012-05-02 15:20:30 -03:00
trace-event-info.c perf: Have perf use the new libtraceevent.a library 2012-04-25 13:28:48 +02:00
trace-event-parse.c Merge branch 'linus' into perf/core 2012-07-18 11:17:17 +02:00
trace-event-read.c perf tools: Stop using a global trace events description list 2012-06-27 13:08:42 -03:00
trace-event-scripting.c perf tools: Stop using a global trace events description list 2012-06-27 13:08:42 -03:00
trace-event.h perf tools: Stop using a global trace events description list 2012-06-27 13:08:42 -03:00
types.h perf tools: Add union u64_swap type for swapping u64 data 2012-05-22 12:50:25 -03:00
usage.c perf target: Introduce perf_target__parse_uid() 2012-05-07 16:46:48 -03:00
util.c perf annotate browser: Align jump labels 2012-04-19 13:15:24 -03:00
util.h perf lib: Introduce rtrim 2012-06-19 13:06:19 -03:00
values.c perf tools: Fix a memory leak on perf_read_values_destroy 2011-12-20 13:41:34 -02:00
values.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
wrapper.c perf tools: remove xstrndup, xmalloc, xzalloc 2010-05-18 23:05:28 -03:00
xyarray.c perf tools: Introduce event selectors 2011-01-03 16:39:04 -02:00
xyarray.h perf tools: Introduce event selectors 2011-01-03 16:39:04 -02:00