linux-uconsole/tools/perf/util
Jiri Olsa 2788d619a6 perf session: Do not fail on processing out of order event
commit f61ff6c06d upstream.

Linus reported perf report command being interrupted due to processing
of 'out of order' event, with following error:

  Timestamp below last timeslice flush
  0x5733a8 [0x28]: failed to process type: 3

I could reproduce the issue and in my case it was caused by one CPU
(mmap) being behind during record and userspace mmap reader seeing the
data after other CPUs data were already stored.

This is expected under some circumstances because we need to limit the
number of events that we queue for reordering when we receive a
PERF_RECORD_FINISHED_ROUND or when we force flush due to memory
pressure.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Acked-by: Ingo Molnar <mingo@kernel.org>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matt Fleming <matt.fleming@intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1417016371-30249-1-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
[zhangzhiqiang: backport to 3.10:
 - adjust context
 - commit f61ff6c06d struct events_stats was defined in tools/perf/util/event.h
   while 3.10 stable defined in tools/perf/util/hist.h.
 - 3.10 stable there is no pr_oe_time() which used for debug.
 - After the above adjustments, becomes same to the original patch:
   f61ff6c06d
]
Signed-off-by: Zhiqiang Zhang <zhangzhiqiang.zhang@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-01-16 06:59:03 -08:00
..
include perf tools: Fix PMU format parsing test failure 2013-01-24 16:40:47 -03:00
scripting-engines perf scripting perl: Fix build error on Fedora 12 2014-01-25 08:27:11 -08: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 browser: Use disasm__calc_percent() 2013-03-15 13:06:06 -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: Move build_id__sprintf into build-id object 2012-10-29 11:34:46 -02: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 tools: Fix calloc argument ordering 2013-02-06 18:09:28 -03:00
callchain.h perf record: Export the callchain parsing routine and help 2012-12-11 17:22:14 -03:00
cgroup.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
cgroup.h
color.c perf tools: Remove cast of non-variadic function to variadic 2013-12-04 10:55:49 -08:00
color.h perf tools: Remove cast of non-variadic function to variadic 2013-12-04 10:55:49 -08:00
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 stat: Add per-core aggregation 2013-03-25 16:13:26 -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: Generalize filter in __fprintf_buildid methods 2012-12-09 08:46:07 -03:00
dso.h perf symbols: Generalize filter in __fprintf_buildid methods 2012-12-09 08:46:07 -03:00
dwarf-aux.c perf probe: Print an enum type variable in "enum variable-name" format when showing accessible variables 2012-09-27 10:58:57 -03:00
dwarf-aux.h
environment.c
event.c perf tools: Fix memory leak on error 2013-01-30 10:40:05 -03:00
event.h perf tools: Add mem access sampling core support 2013-04-01 12:20:13 -03:00
evlist.c perf/core improvements and fixes: 2013-03-21 11:06:12 +01:00
evlist.h perf evlist: Introduce perf_evlist__close() 2013-03-15 13:06:10 -03:00
evsel.c perf evsel: Fix printing of perf_event_paranoid message 2014-06-11 12:03:22 -07:00
evsel.h perf stat: Introduce --repeat forever 2013-03-15 14:01:26 -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 tools: Handle failure case in trace_report() 2013-03-21 13:30:52 -03:00
header.h perf header: Add HEADER_GROUP_DESC feature 2013-01-31 13:07:44 -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 tools: Add new mem command for memory access profiling 2013-04-01 12:21:44 -03:00
hist.h perf session: Do not fail on processing out of order event 2015-01-16 06:59:03 -08: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: Detect data vs. text mappings 2013-04-01 12:22:00 -03:00
machine.h perf tools: Add mem access sampling core support 2013-04-01 12:20:13 -03:00
map.c perf tools: Handle JITed code in shared memory 2013-10-01 09:17:48 -07:00
map.h perf tools: Stop using 'self' in map.[ch] 2013-01-25 12:49:28 -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 tools: Introduce tools/lib/lk library 2013-03-15 13:06:00 -03:00
parse-events.h perf tools: Keep group information 2013-01-31 13:07:43 -03:00
parse-events.l perf tools: Add basic event modifier sanity check 2012-11-14 16:52:24 -03:00
parse-events.y perf tools: Fix build with bison 2.3 and older. 2013-02-14 16:12:34 -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-VERSION-GEN perf tools: Do not include PERF-VERSION-FILE to Makefile 2013-01-24 16:40:45 -03:00
perf_regs.h perf tools: Convert to LIBUNWIND_SUPPORT 2012-10-02 17:56:01 -03:00
pmu.c perf pmu: Privatize perf_pmu_{format,alias} structs 2013-01-24 16:40:51 -03:00
pmu.h perf pmu: Privatize perf_pmu_{format,alias} structs 2013-01-24 16:40:51 -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
probe-finder.c perf probe: Allow of casting an array of char to string 2013-01-24 16:40:20 -03:00
probe-finder.h
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 python: Fix breakage introduced by the test_attr infrastructure 2013-01-24 16:40:09 -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
run-command.c
run-command.h
session.c perf session: Do not fail on processing out of order event 2015-01-16 06:59:03 -08:00
session.h perf session: Remove unused perf_session__remove_thread method 2013-03-15 13:06:08 -03:00
setup.py perf tools: Introduce tools/lib/lk library 2013-03-15 13:06:00 -03:00
sigchain.c
sigchain.h
sort.c perf tools: Fix output of symbol_daddr offset 2013-04-01 12:22:15 -03:00
sort.h perf tools: Add mem access sampling core support 2013-04-01 12:20:13 -03:00
stat.c perf stat: Move stats related code to util/stat.c 2012-09-17 13:10:03 -03:00
stat.h perf stat: Move stats related code to util/stat.c 2012-09-17 13:10:03 -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: Move ltrim() to util/string.c 2013-01-24 16:40:49 -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 perf report: Add --no-demangle option 2013-03-26 16:38:21 -03:00
symbol-minimal.c perf symbols: Include elf.h header regardless LIBELF_SUPPORT 2013-01-24 16:40:18 -03:00
symbol.c perf report: Add --no-demangle option 2013-03-26 16:38:21 -03:00
symbol.h perf tools: Add mem access sampling core support 2013-04-01 12:20:13 -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
thread.c perf machine: Move more machine methods to machine.c 2012-12-09 08:46:08 -03:00
thread.h perf machine: Move more machine methods to machine.c 2012-12-09 08:46:08 -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
top.c perf top: Use perf_evlist__config() 2012-12-11 17:22:39 -03:00
top.h perf evsel: Do missing feature fallbacks in just one place 2013-01-24 16:40:08 -03:00
trace-event-info.c perf tools: Get rid of die() calls from trace-event-info.c 2013-03-21 13:30:10 -03:00
trace-event-parse.c perf tools: Remove unused tracing functions 2013-03-15 13:06:07 -03:00
trace-event-read.c perf tools: Cleanup calc_data_size logic 2013-03-21 13:37:37 -03:00
trace-event-scripting.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
trace-event.h perf tools: Get rid of write_or_die() from trace-event-info.c 2013-03-21 13:15:42 -03:00
types.h
unwind.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
unwind.h perf tools: Convert to LIBUNWIND_SUPPORT 2012-10-02 17:56:01 -03:00
usage.c
util.c perf tools: Extract perf-specific stuff from debugfs.c 2013-03-15 13:06:01 -03:00
util.h perf tools: Get rid of redundant _FILE_OFFSET_BITS definition 2013-03-21 13:04:00 -03:00
values.c
values.h
vdso.c perf tools: Back [vdso] DSO with real data 2012-09-11 12:08:30 -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