linux/tools/perf
Adrian Hunter f6edb53c49 perf tools: Prefer to use a cpu-wide event for probing CLOEXEC
When doing a system-wide trace with Intel PT, the jump label set up as a
result of probing CLOEXEC gets reset while the trace is running.  That
causes an Intel PT decoding error because the object code (obtained from
/proc/kcore) does not match the running code at that point.  While we
can't expect there never to be jump label changes, we can avoid cases
that the perf tool itself creates.

The problem is avoided by first trying a cpu-wide event (pid = -1) for
probing the PERF_FLAG_FD_CLOEXEC flag and falling back to an event for
the current process (pid = 0).

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1407855871-15024-5-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2014-08-13 16:24:13 -03:00
..
arch perf tools: Fix arm64 build error 2014-07-30 12:37:55 -03:00
bench perf tools: Enable close-on-exec flag on perf file descriptor 2014-07-18 09:09:34 +02:00
config perf tools: Default to python version 2 2014-08-12 12:03:08 -03:00
Documentation perf top: Add -w option for setting column width 2014-08-12 12:03:06 -03:00
python perf python: Remove duplicate TID bit from mask 2013-08-07 17:35:25 -03:00
scripts perf script: Add callchain to generic and tracepoint events 2014-07-16 17:57:33 -03:00
tests perf tools: Move rdtsc() function 2014-07-23 11:48:11 -03:00
ui perf tools: Fix column alignment when headers aren't shown on TUI 2014-08-12 12:03:07 -03:00
util perf tools: Prefer to use a cpu-wide event for probing CLOEXEC 2014-08-13 16:24:13 -03:00
.gitignore perf tools: Ignore 'perf timechart' output file 2013-10-11 12:17:37 -03:00
builtin-annotate.c perf tools: Rename ordered_samples bool to ordered_events 2014-08-12 12:02:54 -03:00
builtin-bench.c perf bench: Add --repeat option 2014-06-19 16:13:15 -03:00
builtin-buildid-cache.c perf buildid-cache: Apply force option to copying kcore 2014-07-16 17:57:35 -03:00
builtin-buildid-list.c perf session: Separating data file properties from session 2013-10-21 17:33:25 -03:00
builtin-diff.c perf tools: Rename ordered_samples bool to ordered_events 2014-08-12 12:02:54 -03:00
builtin-evlist.c perf tools: Move pr_* debug macros into debug object 2014-07-17 12:58:39 -03:00
builtin-help.c perf tools: Move pr_* debug macros into debug object 2014-07-17 12:58:39 -03:00
builtin-inject.c perf tools: Rename ordered_samples bool to ordered_events 2014-08-12 12:02:54 -03:00
builtin-kmem.c perf kmem: Do not ignore mmap events 2014-08-12 12:03:03 -03:00
builtin-kvm.c perf kvm: Fix stdin handling for 'kvm stat live' command 2014-08-13 12:42:24 -03:00
builtin-list.c perf list: Add usage 2013-11-05 14:26:41 -03:00
builtin-lock.c perf tools: Rename ordered_samples bool to ordered_events 2014-08-12 12:02:54 -03:00
builtin-mem.c perf tools: Rename ordered_samples bool to ordered_events 2014-08-12 12:02:54 -03:00
builtin-probe.c perf probe: Show error code and description in verbose mode 2014-06-09 14:34:09 -03:00
builtin-record.c perf record: Honour --no-time command line option 2014-08-12 12:00:03 -03:00
builtin-report.c perf tools: Add report.queue-size config file option 2014-08-12 12:03:01 -03:00
builtin-sched.c perf tools: Rename ordered_samples bool to ordered_events 2014-08-12 12:02:54 -03:00
builtin-script.c perf tools: Rename ordered_samples bool to ordered_events 2014-08-12 12:02:54 -03:00
builtin-stat.c perf tools: Fix wrong condition for allocation failure 2014-06-27 11:14:54 +02:00
builtin-timechart.c perf tools: Rename ordered_samples bool to ordered_events 2014-08-12 12:02:54 -03:00
builtin-top.c perf top: Setup signals for terminal output 2014-08-13 12:42:24 -03:00
builtin-trace.c perf trace: Add beautifier for mremap flags param 2014-08-13 15:55:26 -03:00
builtin.h perf tools: Add new mem command for memory access profiling 2013-04-01 12:21:44 -03:00
command-list.txt perf tools: Add new mem command for memory access profiling 2013-04-01 12:21:44 -03:00
CREDITS
design.txt perf tools: Update some code references in design.txt 2014-03-18 18:17:06 -03:00
Makefile perf tools: Add 'build-test' make target 2014-01-16 16:26:26 -03:00
Makefile.perf perf tools: Create ordered-events object 2014-08-12 12:02:58 -03:00
MANIFEST perf kvm: Add stat support on s390 2014-07-16 17:57:33 -03:00
perf-archive.sh perf archive: Make 'f' the last parameter for tar 2012-09-17 13:10:42 -03:00
perf-completion.sh perf sched: Introduce --list-cmds for use by scripts 2014-04-16 17:16:05 +02:00
perf-sys.h perf tools: Allow to use cpuinfo on s390 2014-07-07 16:55:24 -03:00
perf.c perf tools: Fix perf usage string leftover 2014-07-28 15:58:13 +02:00
perf.h perf tools: Move ACCESS_ONCE from perf.h header 2014-05-05 17:49:07 +02:00