linux_dsm_epyc7002/tools/perf/util
Arnaldo Carvalho de Melo 0a1eae391d perf tools: Don't keep unreferenced maps when unmaps are detected
For a file with:

[root@emilia linux-2.6-tip]# perf report -D -fi allmodconfig-j32.perf.data | grep events:
     TOTAL events:      36933
      MMAP events:       9056
      LOST events:          0
      COMM events:       1702
      EXIT events:       1887
  THROTTLE events:          8
UNTHROTTLE events:          8
      FORK events:       1894
      READ events:          0
    SAMPLE events:      22378
      ATTR events:          0
EVENT_TYPE events:          0
TRACING_DATA events:          0
  BUILD_ID events:          0
[root@emilia linux-2.6-tip]#

Testing with valgrind and making perf_session__delete() a nop, so that
we can notice how many maps were actually deleted due to not having any
samples on it:

==== HEAP SUMMARY:

Before:

==10339==     in use at exit: 8,909,997 bytes in 68,690 blocks
==10339==   total heap usage: 78,696 allocs, 10,007 frees, 11,925,853 bytes allocated

After:

==10506==     in use at exit: 8,902,605 bytes in 68,606 blocks
==10506==   total heap usage: 78,696 allocs, 10,091 frees, 11,925,853 bytes allocated

I.e. just 84 detected unmaps with no hits out of 9056 for this workload,
not much, but in some other long running workload this may save more
bytes.

Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
LKML-Reference: <new-submission>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2010-08-02 19:45:23 -03:00
..
include perf options: Check v type in OPT_U?INTEGER 2010-05-17 15:43:38 -03:00
scripting-engines perf scripts python: Give field dict to unhandled callback 2010-06-01 06:12:35 -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
bitmap.c perf tools: Don't use code surrounded by __KERNEL__ 2010-05-02 12:00:44 -03:00
build-id.c perf tools: Release thread resources on PERF_RECORD_EXIT 2010-07-30 18:28:42 -03:00
build-id.h perf annotate: Use build-ids to find the right DSO 2010-05-20 12:15:33 -03:00
cache.h perf buildid: add perfconfig option to specify buildid cache dir 2010-06-05 09:34:04 -03:00
callchain.c Merge branch 'linus' into perf/core 2010-07-21 21:43:06 +02:00
callchain.h Merge branch 'linus' into perf/core 2010-07-21 21:43:06 +02:00
color.c perf hist: Replace ->print() routines by ->snprintf() equivalents 2010-04-02 16:28:15 -03:00
color.h perf hist: Replace ->print() routines by ->snprintf() equivalents 2010-04-02 16:28:15 -03:00
config.c perf buildid: add perfconfig option to specify buildid cache dir 2010-06-05 09:34:04 -03:00
cpumap.c perf tools: Add the ability to specify list of cpus to monitor 2010-06-05 09:33:01 -03:00
cpumap.h perf tools: Add the ability to specify list of cpus to monitor 2010-06-05 09:33:01 -03:00
ctype.c perf tools: Move graph_line and graph_dotted_line from top 2009-11-23 21:55:20 +01:00
debug.c perf debug: fix hex dump partial final line 2010-06-17 13:20:50 -03:00
debug.h perf: Fix endianness argument compatibility with OPT_BOOLEAN() and introduce OPT_INCR() 2010-04-14 11:26:44 +02:00
debugfs.c perf trace: Clean up find_debugfs() 2009-12-28 10:36:36 +01:00
debugfs.h perf tools: Mount debugfs automatically 2009-12-28 10:36:36 +01:00
environment.c perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
event.c perf tools: Release session and symbol resources on exit 2010-07-30 18:31:28 -03:00
event.h perf tools: Make event__preprocess_sample parse the sample 2010-06-05 09:35:19 -03:00
exec_cmd.c perf tools: remove xstrndup, xmalloc, xzalloc 2010-05-18 23:05:28 -03:00
exec_cmd.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
generate-cmdlist.sh perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
header.c perf record: Add option to avoid updating buildid cache 2010-06-17 10:20:44 -03:00
header.h perf/live: don't synthesize build ids at the end of a live mode trace 2010-05-02 12:04:05 -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 tools: Don't keep unreferenced maps when unmaps are detected 2010-08-02 19:45:23 -03:00
hist.h perf hist: Introduce routine to measure lenght of formatted entry 2010-07-27 11:24:31 -03:00
hweight.c perf tools: Don't use code surrounded by __KERNEL__ 2010-05-02 12:00:44 -03:00
levenshtein.c perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
levenshtein.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
map.c perf tools: Don't keep unreferenced maps when unmaps are detected 2010-08-02 19:45:23 -03:00
map.h perf tools: Don't keep unreferenced maps when unmaps are detected 2010-08-02 19:45:23 -03:00
newt.c perf tui: Make CTRL+Z suspend perf 2010-07-30 10:06:06 -03:00
pager.c perf_counter tools: Remove dead code 2009-06-27 06:06:39 +02:00
parse-events.c perf: Don't use 4 bytes as a default instruction breakpoint length 2010-06-24 23:35:49 +02:00
parse-events.h perf: record TRACE_INFO only if using tracepoints and SAMPLE_RAW 2010-05-03 10:31:48 -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: Type check all the remaining OPT_ variants 2010-05-17 16:22:41 -03:00
path.c perf tools: remove xstrndup, xmalloc, xzalloc 2010-05-18 23:05:28 -03:00
PERF-VERSION-GEN perf: Version String fix, for fallback if not from git 2010-07-05 10:42:58 +02:00
probe-event.c perf probe: Rename common fields/functions from kprobe to probe. 2010-07-30 12:01:38 -03:00
probe-event.h perf probe: Rename common fields/functions from kprobe to probe. 2010-07-30 12:01:38 -03:00
probe-finder.c perf probe: Rename common fields/functions from kprobe to probe. 2010-07-30 12:01:38 -03:00
probe-finder.h perf probe: Rename common fields/functions from kprobe to probe. 2010-07-30 12:01:38 -03:00
pstack.c perf newt: Make <- zoom out filters 2010-05-14 20:05:21 -03:00
pstack.h perf newt: Make <- zoom out filters 2010-05-14 20:05:21 -03: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 session: Invalidate last_match when removing threads from rb_tree 2010-08-02 19:01:09 -03:00
session.h perf session: Remove threads from tree on PERF_RECORD_EXIT 2010-06-17 08:37:44 -03: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 sort: Make column width code per hists instance 2010-07-23 08:55:59 -03:00
sort.h perf ui: New hists tree widget 2010-07-27 11:24:31 -03:00
strbuf.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
strbuf.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
string.c perf: Swap inclusion order of util.h and string.h in util/string.c 2010-04-04 16:40:42 +02: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: Improve the visual appearance of scheduler delays 2009-10-20 03:39:21 +02:00
svghelper.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
symbol.c perf session: Free the ref_reloc_sym memory at the right place 2010-08-02 18:18:28 -03:00
symbol.h perf session: Free the ref_reloc_sym memory at the right place 2010-08-02 18:18:28 -03:00
thread.c perf tools: Release thread resources on PERF_RECORD_EXIT 2010-07-30 18:28:42 -03:00
thread.h perf tools: Release thread resources on PERF_RECORD_EXIT 2010-07-30 18:28:42 -03:00
trace-event-info.c perf/record: simplify TRACE_INFO tracepoint check 2010-05-05 11:12:53 -03:00
trace-event-parse.c Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-05-18 08:19:03 -07:00
trace-event-read.c perf: Use read() instead of lseek() in trace_event_read.c:skip() 2010-05-20 08:37:17 +02:00
trace-event-scripting.c perf/scripts: Add Python scripting engine 2010-02-25 04:07:29 +01:00
trace-event.h perf: Fix unaligned accesses while fetching trace values 2010-05-20 11:21:57 +02:00
types.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
usage.c perf top: Fall back to cpu-clock-tick hrtimer sampling if no cycle counter available 2009-06-07 17:31:52 +02:00
util.c perf report: Report number of events, not samples 2010-05-14 14:19:35 -03:00
util.h perf record: Add option to avoid updating buildid cache 2010-06-17 10:20:44 -03:00
values.c perf: Fix memory leak: counterwidth 2010-01-13 10:09:15 +01: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