linux/tools/perf/util
Zhouyi Zhou 8e50d384cc perf tools: Fixup mmap event consumption
The tail position of the event buffer should only be modified after
actually use that event.

If not the event buffer could be invalid before use, and segment fault
occurs when invoking perf top -G.

Signed-off-by: Zhouyi Zhou <yizhouzhou@ict.ac.cn>
Cc: David Ahern <dsahern@gmail.com>
Cc: Zhouyi Zhou <yizhouzhou@ict.ac.cn>
Link: http://lkml.kernel.org/r/1382600613-32177-1-git-send-email-zhouzhouyi@gmail.com
[ Simplified the logic using exit gotos and renamed write_tail method to mmap_consume ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2013-10-28 16:06:00 -03:00
..
include perf tools: Default to cpu// for events v5 2013-07-12 13:53:52 -03:00
scripting-engines perf script python: Fix mem leak due to missing Py_DECREFs on dict entries 2013-10-24 10:16:54 -03:00
PERF-VERSION-GEN perf tools: Fix perf version generation 2013-07-08 18:09:52 -03:00
abspath.c
alias.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
annotate.c perf annotate: Fix objdump line parsing offset validation 2013-09-19 11:32:17 -03:00
annotate.h perf tools: Remove dependency on libnewt 2013-04-01 12:23:21 -03:00
bitmap.c
build-id.c perf tools: Add attr->mmap2 support 2013-09-11 10:09:32 -03:00
build-id.h perf tools: Move BUILD_ID_SIZE into build-id object 2012-10-29 11:35:32 -02:00
cache.h perf ui: Always compile browser setup code 2012-11-14 16:53:03 -03:00
callchain.c perf callchain: Remove unnecessary validation 2013-08-29 15:11:29 -03:00
callchain.h perf record: Split -g and --call-graph 2013-10-28 16:05:59 -03:00
cgroup.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
cgroup.h
color.c
color.h
config.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
cpumap.c perf stat: Add per-core aggregation 2013-03-25 16:13:26 -03:00
cpumap.h perf tools: Rename cpu_map__all() to cpu_map__empty() 2013-07-12 13:45:44 -03:00
ctype.c
debug.c perf tools: Fix TUI helpline output 2012-12-09 08:46:07 -03:00
debug.h perf evsel: Introduce perf_evsel__open_strerror method 2013-01-24 16:40:09 -03:00
dso.c perf symbols: Add support for reading from /proc/kcore 2013-08-07 17:35:33 -03:00
dso.h perf symbols: Add support for reading from /proc/kcore 2013-08-07 17:35:33 -03:00
dwarf-aux.c perf probe: Fix to find line information for probe list 2013-10-04 15:16:05 -03:00
dwarf-aux.h perf probe: Fix to find line information for probe list 2013-10-04 15:16:05 -03:00
environment.c
event.c perf tools: Fix up /proc/PID/maps parsing 2013-10-28 09:38:12 -03:00
event.h perf tools: Add attr->mmap2 support 2013-09-11 10:09:32 -03:00
evlist.c perf tools: Fixup mmap event consumption 2013-10-28 16:06:00 -03:00
evlist.h perf tools: Fixup mmap event consumption 2013-10-28 16:06:00 -03:00
evsel.c perf: Disable PERF_RECORD_MMAP2 support 2013-10-17 16:27:14 -03:00
evsel.h perf tools: Add support for PERF_SAMPLE_IDENTIFIER 2013-08-29 16:09:31 -03:00
exec_cmd.c
exec_cmd.h
generate-cmdlist.sh perf tools: Convert to LIBELF_SUPPORT 2012-09-28 21:07:36 -03:00
header.c perf session: Fix infinite loop on invalid perf.data file 2013-10-04 15:17:46 -03:00
header.h perf header: Recognize version number for perf data file 2013-07-17 17:04:00 -03:00
help.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
help.h
hist.c perf session: Check for SIGINT in more loops 2013-09-19 11:32:17 -03:00
hist.h perf hists: Add color overhead for stdio output buffer 2013-10-28 16:05:59 -03:00
hweight.c
intlist.c perf tools: Allow passing a list to intlist__new 2013-01-24 16:40:53 -03:00
intlist.h perf tools: Allow passing a list to intlist__new 2013-01-24 16:40:53 -03:00
levenshtein.c
levenshtein.h
machine.c perf machine: Fix path unpopulated in machine__create_modules() 2013-09-25 12:48:24 -03:00
machine.h perf tools: Add attr->mmap2 support 2013-09-11 10:09:32 -03:00
map.c perf tools: Add attr->mmap2 support 2013-09-11 10:09:32 -03:00
map.h perf tools: Add attr->mmap2 support 2013-09-11 10:09:32 -03:00
pager.c perf tools: Fix pager on minimal-install embedded systems 2012-05-30 15:10:39 -03:00
parse-events.c perf list: Skip unsupported events 2013-09-02 14:58:21 -03:00
parse-events.h perf parse events: Demystify memory allocations 2013-07-12 13:52:05 -03:00
parse-events.l perf tools: Add support for PERF_COUNT_SW_DUMMY 2013-09-02 14:58:20 -03:00
parse-events.y perf parse events: Demystify memory allocations 2013-07-12 13:52:05 -03:00
parse-options.c perf tools: Long option completion support for each subcommands 2012-10-02 18:36:44 -03:00
parse-options.h perf tools: Long option completion support for each subcommands 2012-10-02 18:36:44 -03:00
path.c perf tools: Convert to HAVE_STRLCPY 2012-10-02 18:36:24 -03:00
perf_regs.h perf tools: Convert to LIBUNWIND_SUPPORT 2012-10-02 17:56:01 -03:00
pmu.c perf list: List kernel supplied event aliases 2013-07-12 13:53:53 -03:00
pmu.h perf list: List kernel supplied event aliases 2013-07-12 13:53:53 -03:00
pmu.l
pmu.y perf tools: Fix build with bison 2.3 and older. 2013-02-14 16:12:34 -03:00
probe-event.c perf tools: Introduce tools/lib/lk library 2013-03-15 13:06:00 -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: Fix to initialize fname always before use it 2013-10-15 14:37:38 -03:00
probe-finder.h perf probe: Fix probing symbols with optimization suffix 2013-09-25 12:27:31 -03:00
pstack.c perf tools: Stop using 'self' in pstack 2012-11-14 16:50:38 -03:00
pstack.h
python-ext-sources perf tools: Introduce tools/lib/lk library 2013-03-15 13:06:00 -03:00
python.c perf tools: Fixup mmap event consumption 2013-10-28 16:06:00 -03:00
quote.c
quote.h
rblist.c Account the nr_entries in rblist properly 2012-10-24 14:20:11 -02:00
rblist.h perf tools: Introducing rblist 2012-08-03 10:37:21 -03:00
record.c perf tools: Add support for PERF_SAMPLE_IDENTIFIER 2013-08-29 16:09:31 -03:00
run-command.c
run-command.h
session.c perf session: Fix infinite loop on invalid perf.data file 2013-10-04 15:17:46 -03:00
session.h perf session: Check for SIGINT in more loops 2013-09-19 11:32:17 -03:00
setup.py perf tools: Merge all *CFLAGS* make variable into CFLAGS 2013-05-30 16:12:03 +03:00
sigchain.c
sigchain.h
sort.c perf tools: Move weight back to common sort keys 2013-07-22 16:58:28 -03:00
sort.h perf tools: Move weight back to common sort keys 2013-07-22 16:58:28 -03:00
stat.c perf stats: Add max and min stats 2013-08-07 17:35:26 -03:00
stat.h perf stats: Add max and min stats 2013-08-07 17:35:26 -03:00
strbuf.c perf tools: Fix strbuf_addf() when the buffer needs to grow 2012-10-30 10:32:56 -02:00
strbuf.h
strfilter.c
strfilter.h
string.c perf tools: Default to cpu// for events v5 2013-07-12 13:53:52 -03:00
strlist.c perf probe: Fix segfault 2013-03-13 17:00:33 -03:00
strlist.h perf tools: Stop using 'self' in strlist 2013-01-25 12:49:28 -03:00
svghelper.c
svghelper.h
symbol-elf.c Revert "perf symbols: Demangle cloned functions" 2013-09-29 16:12:54 +02:00
symbol-minimal.c perf symbols: Add support for reading from /proc/kcore 2013-08-07 17:35:33 -03:00
symbol.c perf tools: Fix symbol offset computation for some dsos 2013-09-02 14:58:21 -03:00
symbol.h perf symbols: Add support for reading from /proc/kcore 2013-08-07 17:35:33 -03:00
sysfs.c perf tools: Fix possible (unlikely) buffer overflow 2013-01-24 16:40:18 -03:00
sysfs.h
target.c perf tools: Replace mempcpy with memcpy 2012-09-05 19:35:21 -03:00
target.h perf target: Add uses_mmap field 2012-05-17 12:32:54 -03:00
thread.c perf tools: Add pid to struct thread 2013-08-27 11:05:53 -03:00
thread.h perf tools: Add pid to struct thread 2013-08-27 11:05:53 -03: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 evlist: Add thread_map__nr() helper 2013-03-15 13:06:02 -03:00
tool.h perf tools: Add attr->mmap2 support 2013-09-11 10:09:32 -03:00
top.c perf top: Fix percent output when no samples collected 2013-05-28 16:23:59 +03:00
top.h perf top: move CONSOLE_CLEAR to header file 2013-08-07 17:35:26 -03:00
trace-event-info.c perf util: No need to call read_trace_init() in tracing_data_header() 2013-07-12 13:52:31 -03:00
trace-event-parse.c perf tools: Fix old GCC build error in trace-event-parse.c:parse_proc_kallsyms() 2013-09-19 15:08:47 -03:00
trace-event-read.c perf util: Parse header_page to get proper long size 2013-07-12 13:52:24 -03:00
trace-event-scripting.c perf script: Fix named threads support 2013-07-22 11:55:53 -03:00
trace-event.h perf script: Fix named threads support 2013-07-22 11:55:53 -03:00
types.h perf tools: Add union u64_swap type for swapping u64 data 2012-05-22 12:50:25 -03:00
unwind.c perf tools: Remove filter parameter of thread__find_addr_map() 2013-08-12 10:31:12 -03:00
unwind.h perf tools: Convert to LIBUNWIND_SUPPORT 2012-10-02 17:56:01 -03:00
usage.c perf target: Introduce perf_target__parse_uid() 2012-05-07 16:46:48 -03:00
util.c perf util: Add parse_nsec_time() function 2013-08-07 17:35:26 -03:00
util.h perf util: Add parse_nsec_time() function 2013-08-07 17:35:26 -03:00
values.c
values.h
vdso.c perf symbols: Fix vdso list searching 2013-07-08 17:59:07 -03:00
vdso.h perf tools: Back [vdso] DSO with real data 2012-09-11 12:08:30 -03:00
wrapper.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
xyarray.c
xyarray.h