Adrian Hunter
56b2b649a5
perf intel-pt: Fix "context_switch event has no tid" error
[ Upstream commit 7d537a8d2e76bc4fc71e34545ceaa463ac2cd928 ]
A context_switch event can have no tid because pids can be detached from
a task while the task is still running (in do_exit()). Note this won't
happen with per-task contexts because then tracing stops at
perf_event_exit_task()
If a task with no tid gets preempted, or a dying task gets preempted and
its parent releases it, when it subsequently gets switched back in,
Intel PT will not be able to determine what task is running and prints
an error "context_switch event has no tid". However, it is not really an
error because the task is in kernel space and the decoder can continue
to decode successfully. Fix by changing the error to be only a logged
message, and make allowance for tid == -1.
Example:
Using 5.9-rc4 with Preemptible Kernel (Low-Latency Desktop) e.g.
$ uname -r
5.9.0-rc4
$ grep PREEMPT .config
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_COUNT=y
CONFIG_PREEMPTION=y
CONFIG_PREEMPT_RCU=y
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
CONFIG_DEBUG_PREEMPT=y
# CONFIG_PREEMPT_TRACER is not set
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
Before:
$ cat forkit.c
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
int main()
{
pid_t child;
int status = 0;
child = fork();
if (child == 0)
return 123;
wait(&status);
return 0;
}
$ gcc -o forkit forkit.c
$ sudo ~/bin/perf record --kcore -a -m,64M -e intel_pt/cyc/k &
[1] 11016
$ taskset 2 ./forkit
$ sudo pkill perf
$ [ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 17.262 MB perf.data ]
[1]+ Terminated sudo ~/bin/perf record --kcore -a -m,64M -e intel_pt/cyc/k
$ sudo ~/bin/perf script --show-task-events --show-switch-events --itrace=iqqe-o -C 1 --ns | grep -C 2 forkit
context_switch event has no tid
taskset 11019 [001] 66663.270045029: 1 instructions:k: ffffffffb1d9f844 strnlen_user+0xb4 ([kernel.kallsyms])
taskset 11019 [001] 66663.270201816: 1 instructions:k: ffffffffb1a83121 unmap_page_range+0x561 ([kernel.kallsyms])
forkit 11019 [001] 66663.270327553: PERF_RECORD_COMM exec: forkit:11019/11019
forkit 11019 [001] 66663.270420028: 1 instructions:k: ffffffffb1db9537 __clear_user+0x27 ([kernel.kallsyms])
forkit 11019 [001] 66663.270648704: 1 instructions:k: ffffffffb18829e6 do_user_addr_fault+0xf6 ([kernel.kallsyms])
forkit 11019 [001] 66663.270833163: 1 instructions:k: ffffffffb230a825 irqentry_exit_to_user_mode+0x15 ([kernel.kallsyms])
forkit 11019 [001] 66663.271092359: 1 instructions:k: ffffffffb1aea3d9 lock_page_memcg+0x9 ([kernel.kallsyms])
forkit 11019 [001] 66663.271207092: PERF_RECORD_FORK(11020:11020):(11019:11019)
forkit 11019 [001] 66663.271234775: PERF_RECORD_SWITCH_CPU_WIDE OUT next pid/tid: 11020/11020
forkit 11020 [001] 66663.271238407: PERF_RECORD_SWITCH_CPU_WIDE IN prev pid/tid: 11019/11019
forkit 11020 [001] 66663.271312066: 1 instructions:k: ffffffffb1a88140 handle_mm_fault+0x10 ([kernel.kallsyms])
forkit 11020 [001] 66663.271476225: PERF_RECORD_EXIT(11020:11020):(11019:11019)
forkit 11020 [001] 66663.271497488: PERF_RECORD_SWITCH_CPU_WIDE OUT preempt next pid/tid: 11019/11019
forkit 11019 [001] 66663.271500523: PERF_RECORD_SWITCH_CPU_WIDE IN prev pid/tid: 11020/11020
forkit 11019 [001] 66663.271517241: 1 instructions:k: ffffffffb24012cd error_entry+0x6d ([kernel.kallsyms])
forkit 11019 [001] 66663.271664080: PERF_RECORD_EXIT(11019:11019):(1386:1386)
After:
$ sudo ~/bin/perf script --show-task-events --show-switch-events --itrace=iqqe-o -C 1 --ns | grep -C 2 forkit
taskset 11019 [001] 66663.270045029: 1 instructions:k: ffffffffb1d9f844 strnlen_user+0xb4 ([kernel.kallsyms])
taskset 11019 [001] 66663.270201816: 1 instructions:k: ffffffffb1a83121 unmap_page_range+0x561 ([kernel.kallsyms])
forkit 11019 [001] 66663.270327553: PERF_RECORD_COMM exec: forkit:11019/11019
forkit 11019 [001] 66663.270420028: 1 instructions:k: ffffffffb1db9537 __clear_user+0x27 ([kernel.kallsyms])
forkit 11019 [001] 66663.270648704: 1 instructions:k: ffffffffb18829e6 do_user_addr_fault+0xf6 ([kernel.kallsyms])
forkit 11019 [001] 66663.270833163: 1 instructions:k: ffffffffb230a825 irqentry_exit_to_user_mode+0x15 ([kernel.kallsyms])
forkit 11019 [001] 66663.271092359: 1 instructions:k: ffffffffb1aea3d9 lock_page_memcg+0x9 ([kernel.kallsyms])
forkit 11019 [001] 66663.271207092: PERF_RECORD_FORK(11020:11020):(11019:11019)
forkit 11019 [001] 66663.271234775: PERF_RECORD_SWITCH_CPU_WIDE OUT next pid/tid: 11020/11020
forkit 11020 [001] 66663.271238407: PERF_RECORD_SWITCH_CPU_WIDE IN prev pid/tid: 11019/11019
forkit 11020 [001] 66663.271312066: 1 instructions:k: ffffffffb1a88140 handle_mm_fault+0x10 ([kernel.kallsyms])
forkit 11020 [001] 66663.271476225: PERF_RECORD_EXIT(11020:11020):(11019:11019)
forkit 11020 [001] 66663.271497488: PERF_RECORD_SWITCH_CPU_WIDE OUT preempt next pid/tid: 11019/11019
forkit 11019 [001] 66663.271500523: PERF_RECORD_SWITCH_CPU_WIDE IN prev pid/tid: 11020/11020
forkit 11019 [001] 66663.271517241: 1 instructions:k: ffffffffb24012cd error_entry+0x6d ([kernel.kallsyms])
forkit 11019 [001] 66663.271664080: PERF_RECORD_EXIT(11019:11019):(1386:1386)
forkit 11019 [001] 66663.271688752: PERF_RECORD_SWITCH_CPU_WIDE OUT next pid/tid: -1/-1
:-1 -1 [001] 66663.271692086: PERF_RECORD_SWITCH_CPU_WIDE IN prev pid/tid: 11019/11019
:-1 -1 [001] 66663.271707466: 1 instructions:k: ffffffffb18eb096 update_load_avg+0x306 ([kernel.kallsyms])
Fixes: 86c2786994 ("perf intel-pt: Add support for PERF_RECORD_SWITCH")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Yu-cheng Yu <yu-cheng.yu@intel.com>
Link: http://lore.kernel.org/lkml/20200909084923.9096-3-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
|
2020-10-29 09:05:38 +01:00 |
| .. |
|
include
|
perf probe: Support probing on offline cross-arch binary
|
2016-09-01 12:41:09 -03:00 |
|
intel-pt-decoder
|
perf intel-pt: Fix sample timestamp wrt non-taken branches
|
2019-05-25 18:26:50 +02:00 |
|
libunwind
|
perf unwind: Fix wrongly used regs for aarch64 unwind
|
2016-06-23 10:30:31 -03:00 |
|
scripting-engines
|
perf scripting perl: Fix compile error with some perl5 versions
|
2017-07-15 12:16:14 +02:00 |
|
alias.c
|
perf tools: Remove needless includes from cache.h
|
2016-07-12 15:19:58 -03:00 |
|
annotate.c
|
perf annotate: Use asprintf when formatting objdump command line
|
2020-07-31 16:44:07 +02:00 |
|
annotate.h
|
perf annotate: Pass the symbol's map/dso to the instruction parsers
|
2016-09-20 12:28:29 -03:00 |
|
auxtrace.c
|
perf auxtrace: Define auxtrace record alignment
|
2019-03-23 13:19:53 +01:00 |
|
auxtrace.h
|
perf auxtrace: Define auxtrace record alignment
|
2019-03-23 13:19:53 +01:00 |
|
block-range.c
|
perf annotate: Add branch stack / basic block
|
2016-09-08 13:44:03 -03:00 |
|
block-range.h
|
perf annotate: Add branch stack / basic block
|
2016-09-08 13:44:03 -03:00 |
|
bpf-loader.c
|
perf bpf: Fix typo: "ehough" -> "enough"
|
2016-08-23 17:06:39 -03:00 |
|
bpf-loader.h
|
perf bpf: Rename bpf__foreach_tev() to bpf__foreach_event()
|
2016-07-13 23:09:03 -03:00 |
|
bpf-prologue.c
|
|
|
|
bpf-prologue.h
|
|
|
|
Build
|
perf jit: Enable jitdump support without dwarf
|
2017-01-26 08:24:36 +01:00 |
|
build-id.c
|
perf build-id: Fix memory leak in print_sdt_events()
|
2019-04-20 09:07:48 +02:00 |
|
build-id.h
|
perf probe: Support @BUILDID or @FILE suffix for SDT events
|
2016-07-13 23:09:08 -03:00 |
|
cache.h
|
perf tools: Remove needless includes from cache.h
|
2016-07-12 15:19:58 -03:00 |
|
call-path.c
|
perf tools: Refactor code to move call path handling out of thread-stack
|
2016-05-06 13:00:43 -03:00 |
|
call-path.h
|
perf tools: Refactor code to move call path handling out of thread-stack
|
2016-05-06 13:00:43 -03:00 |
|
callchain.c
|
perf callchain: Reference count maps
|
2017-03-12 06:41:47 +01:00 |
|
callchain.h
|
perf callchain: Reference count maps
|
2017-03-12 06:41:47 +01:00 |
|
cgroup.c
|
perf tools: Fix snprint warnings for gcc 8
|
2020-07-31 16:44:07 +02:00 |
|
cgroup.h
|
perf tools: Remove needless 'extern' from function prototypes
|
2016-03-23 15:06:35 -03:00 |
|
cloexec.c
|
perf tools: Introduce weak alternative to sched_getcpu()
|
2016-07-12 15:20:34 -03:00 |
|
cloexec.h
|
perf tools: Remove needless 'extern' from function prototypes
|
2016-03-23 15:06:35 -03:00 |
|
color.c
|
perf tools: Uninline scnprintf() and vscnprint()
|
2016-07-12 15:20:24 -03:00 |
|
color.h
|
|
|
|
comm.c
|
|
|
|
comm.h
|
|
|
|
config.c
|
perf config: Fix a memory leak in collect_config()
|
2019-04-20 09:07:48 +02:00 |
|
config.h
|
perf config: Introduce new init() and exit()
|
2016-06-23 17:20:04 -03:00 |
|
counts.c
|
|
|
|
counts.h
|
|
|
|
cpumap.c
|
perf tools: Handle TOPOLOGY headers with no CPU
|
2019-03-13 14:04:55 -07:00 |
|
cpumap.h
|
perf cpu_map: Add more helpers
|
2016-07-18 19:42:47 -03:00 |
|
cs-etm.h
|
perf tools: Add coresight etm PMU record capabilities
|
2016-09-22 12:19:40 -03:00 |
|
ctype.c
|
perf ui/stdio: Align column header for hierarchy output
|
2016-02-24 20:21:12 -03:00 |
|
data-convert-bt.c
|
perf data: Fix 'strncat may truncate' build failure with recent gcc
|
2019-06-22 08:17:23 +02:00 |
|
data-convert-bt.h
|
perf data ctf: Pass convert options through opts structure
|
2016-06-28 10:54:55 -03:00 |
|
data-convert.h
|
perf data ctf: Add 'all' option
|
2016-06-28 10:54:56 -03:00 |
|
data.c
|
tools: Introduce str_error_r()
|
2016-07-12 15:19:47 -03:00 |
|
data.h
|
perf data: Add perf_data_file__switch() helper
|
2016-04-14 08:57:54 -03:00 |
|
db-export.c
|
perf thread: Adopt get_main_thread from db-export.c
|
2016-05-30 12:41:43 -03:00 |
|
db-export.h
|
perf script: Add call path id to exported sample in db export
|
2016-05-06 13:00:53 -03:00 |
|
debug.c
|
tools: Introduce tools/include/linux/time64.h for *SEC_PER_*SEC macros
|
2016-08-23 15:37:33 -03:00 |
|
debug.h
|
tools: Introduce str_error_r()
|
2016-07-12 15:19:47 -03:00 |
|
demangle-java.c
|
perf symbols: add Java demangling support
|
2016-02-05 09:46:45 -03:00 |
|
demangle-java.h
|
perf symbols: add Java demangling support
|
2016-02-05 09:46:45 -03:00 |
|
demangle-rust.c
|
perf symbols: Add Rust demangling
|
2016-07-12 16:12:38 -03:00 |
|
demangle-rust.h
|
perf symbols: Add Rust demangling
|
2016-07-12 16:12:38 -03:00 |
|
drv_configs.c
|
perf pmu: Push configuration down to PMU driver
|
2016-09-22 12:19:41 -03:00 |
|
drv_configs.h
|
perf pmu: Push configuration down to PMU driver
|
2016-09-22 12:19:41 -03:00 |
|
dso.c
|
perf symbols: Fix debuginfo search for Ubuntu
|
2020-06-20 10:24:22 +02:00 |
|
dso.h
|
perf symbols: Fix debuginfo search for Ubuntu
|
2020-06-20 10:24:22 +02:00 |
|
dwarf-aux.c
|
perf probe: Fix to show function entry line as probe-able
|
2020-01-04 13:40:28 +01:00 |
|
dwarf-aux.h
|
perf probe: Fix to show function entry line as probe-able
|
2020-01-04 13:40:28 +01:00 |
|
dwarf-regs.c
|
perf probe: Support probing on offline cross-arch binary
|
2016-09-01 12:41:09 -03:00 |
|
env.c
|
perf header: Transform nodes string info to struct
|
2016-07-04 19:39:01 -03:00 |
|
env.h
|
perf header: Transform nodes string info to struct
|
2016-07-04 19:39:01 -03:00 |
|
event.c
|
perf cpu_map: Align cpu map synthesized events properly.
|
2018-11-13 11:16:48 -08:00 |
|
event.h
|
Revert "perf tools: event.h needs asm/perf_regs.h"
|
2016-07-25 11:58:56 -03:00 |
|
evlist.c
|
perf tools: Experiment with cppcheck
|
2016-10-03 11:24:13 -03:00 |
|
evlist.h
|
perf evlist: Make {pause,resume} internal helpers
|
2016-07-15 17:27:50 -03:00 |
|
evsel.c
|
perf evsel: Make perf_evsel__name() accept a NULL argument
|
2019-08-04 09:33:20 +02:00 |
|
evsel.h
|
perf evsel: Add support for address filters
|
2016-09-29 11:16:59 -03:00 |
|
evsel_fprintf.c
|
perf script: Fix vanished idle symbols
|
2016-09-29 11:17:00 -03:00 |
|
find-vdso-map.c
|
|
|
|
genelf.c
|
perf jit: Enable jitdump support without dwarf
|
2017-01-26 08:24:36 +01:00 |
|
genelf.h
|
perf jit: Enable jitdump support without dwarf
|
2017-01-26 08:24:36 +01:00 |
|
genelf_debug.c
|
perf jit: add source line info support
|
2016-02-05 12:33:09 -03:00 |
|
generate-cmdlist.sh
|
perf tools: Do not show trace command if it's not compiled in
|
2016-01-08 12:46:17 -03:00 |
|
group.h
|
perf stat: Basic support for TopDown in perf stat
|
2016-06-06 17:04:15 -03:00 |
|
header.c
|
perf tools: Fix segfault in cpu_cache_level__read()
|
2019-10-17 13:42:15 -07:00 |
|
header.h
|
perf pmu: Use pmu_events table to create aliases
|
2016-10-03 19:58:00 -03:00 |
|
help-unknown-cmd.c
|
perf tools: Uninline scnprintf() and vscnprint()
|
2016-07-12 15:20:24 -03:00 |
|
help-unknown-cmd.h
|
perf tools: Move help_unknown_cmd() to its own file
|
2015-12-14 12:30:37 -03:00 |
|
hist.c
|
perf tools: Fix time sorting
|
2019-11-12 19:15:43 +01:00 |
|
hist.h
|
perf hists: Fix variable name's inconsistency in hists__for_each() macro
|
2020-01-23 08:19:40 +01:00 |
|
intel-bts.c
|
perf symbols: Remove symbol_filter_t machinery
|
2016-09-05 11:14:50 -03:00 |
|
intel-bts.h
|
|
|
|
intel-pt.c
|
perf intel-pt: Fix "context_switch event has no tid" error
|
2020-10-29 09:05:38 +01:00 |
|
intel-pt.h
|
perf intel-pt: Record address filter in AUXTRACE_INFO event
|
2016-09-29 11:17:05 -03:00 |
|
intlist.c
|
|
|
|
intlist.h
|
perf intlist: Rename for_each() macros to for_each_entry()
|
2016-06-23 11:39:19 -03:00 |
|
jit.h
|
perf tools: Remove needless 'extern' from function prototypes
|
2016-03-23 15:06:35 -03:00 |
|
jitdump.c
|
perf inject jit: Fix JIT_CODE_MOVE filename
|
2019-10-17 13:42:43 -07:00 |
|
jitdump.h
|
perf jit: Add support for using TSC as a timestamp
|
2016-04-01 18:42:55 -03:00 |
|
kvm-stat.h
|
perf kvm/powerpc: Port perf kvm stat to powerpc
|
2016-01-29 17:49:54 -03:00 |
|
levenshtein.c
|
perf tools: Remove needless includes from cache.h
|
2016-07-12 15:19:58 -03:00 |
|
levenshtein.h
|
|
|
|
llvm-utils.c
|
perf llvm: Don't access out-of-scope array
|
2019-10-17 13:42:42 -07:00 |
|
llvm-utils.h
|
perf llvm: Allow dump llvm output object file using llvm.dump-obj
|
2016-06-21 13:18:34 -03:00 |
|
lzma.c
|
perf tools: Fix error handling of lzma decompression
|
2016-08-24 11:20:58 -03:00 |
|
machine.c
|
perf record: Fix module size on s390
|
2019-08-25 10:51:21 +02:00 |
|
machine.h
|
perf record: Fix module size on s390
|
2019-08-25 10:51:21 +02:00 |
|
map.c
|
perf map: Fix off by one in strncpy() size argument
|
2020-04-02 17:20:41 +02:00 |
|
map.h
|
perf symbols: Remove symbol_filter_t machinery
|
2016-09-05 11:14:50 -03:00 |
|
mem-events.c
|
perf mem: Add --ldlat option
|
2016-06-15 10:35:27 -03:00 |
|
mem-events.h
|
perf mem: Add --ldlat option
|
2016-06-15 10:35:27 -03:00 |
|
ordered-events.c
|
perf inject: Copy events when reordering events in pipe mode
|
2018-03-22 09:17:51 +01:00 |
|
ordered-events.h
|
perf ordered_events: Introduce reinit()
|
2016-04-14 08:57:54 -03:00 |
|
parse-branch-options.c
|
perf subcmd: Create subcmd library
|
2015-12-17 14:27:14 -03:00 |
|
parse-branch-options.h
|
|
|
|
parse-events.c
|
perf tools: Fix snprint warnings for gcc 8
|
2020-07-31 16:44:07 +02:00 |
|
parse-events.h
|
perf list: Support long jevents descriptions
|
2016-10-03 21:35:47 -03:00 |
|
parse-events.l
|
perf jevents: Handle events including .c and .o
|
2016-10-17 11:24:18 -03:00 |
|
parse-events.y
|
perf tools: Fix pmu events parsing rule
|
2018-08-03 07:55:13 +02:00 |
|
parse-regs-options.c
|
perf subcmd: Create subcmd library
|
2015-12-17 14:27:14 -03:00 |
|
parse-regs-options.h
|
|
|
|
path.c
|
perf tools: Remove needless includes from cache.h
|
2016-07-12 15:19:58 -03:00 |
|
PERF-VERSION-GEN
|
|
|
|
perf_regs.c
|
perf tools: Fix perf regs mask generation
|
2016-05-11 21:54:06 +10:00 |
|
perf_regs.h
|
perf regs: Make perf_reg_name() return "unknown" instead of NULL
|
2020-01-04 13:41:02 +01:00 |
|
pmu.c
|
perf test: Free formats for perf pmu parse test
|
2020-09-23 08:46:15 +02:00 |
|
pmu.h
|
perf test: Free formats for perf pmu parse test
|
2020-09-23 08:46:15 +02:00 |
|
pmu.l
|
|
|
|
pmu.y
|
|
|
|
probe-event.c
|
perf probe: Fix to check blacklist address correctly
|
2020-07-31 16:44:07 +02:00 |
|
probe-event.h
|
perf probe: Add helper function to check if probe with variable
|
2016-09-01 12:42:25 -03:00 |
|
probe-file.c
|
perf probe: Fix unchecked usage of strncpy()
|
2019-02-12 19:44:55 +01:00 |
|
probe-file.h
|
perf probe: Add supported for type casting by the running kernel
|
2016-08-23 17:03:31 -03:00 |
|
probe-finder.c
|
perf probe: Fix memory leakage when the probe point is not found
|
2020-08-26 10:29:03 +02:00 |
|
probe-finder.h
|
perf probe: Fix to probe on gcc generated functions in modules
|
2017-07-05 14:40:27 +02:00 |
|
pstack.c
|
|
|
|
pstack.h
|
|
|
|
python-ext-sources
|
tools lib api: Add str_error_c to libapi
|
2016-07-27 17:16:43 -03:00 |
|
python.c
|
perf tools: Make is_printable_array global
|
2016-07-18 19:49:47 -03:00 |
|
quote.c
|
perf quote: Disentangle headers
|
2016-07-12 15:19:55 -03:00 |
|
quote.h
|
perf quote: Disentangle headers
|
2016-07-12 15:19:55 -03:00 |
|
rb_resort.h
|
perf rb_resort: Rename for_each() macros to for_each_entry()
|
2016-06-23 11:35:07 -03:00 |
|
rblist.c
|
|
|
|
rblist.h
|
|
|
|
record.c
|
perf evlist: Rename for_each() macros to for_each_entry()
|
2016-06-23 11:26:15 -03:00 |
|
session.c
|
perf session: Don't rely on evlist in pipe mode
|
2018-03-22 09:17:51 +01:00 |
|
session.h
|
perf evsel: Move some methods from session.[ch] to evsel.[ch]
|
2016-04-13 10:11:52 -03:00 |
|
setup.py
|
perf tools: Fix python extension build
|
2016-02-29 11:18:25 -03:00 |
|
sort.c
|
perf util: Fix memory leak of prefix_if_not_in
|
2020-10-01 20:40:14 +02:00 |
|
sort.h
|
perf tools: Make several sorting functions global
|
2016-09-22 13:08:57 -03:00 |
|
srcline.c
|
perf: Make perf able to build with latest libbfd
|
2020-07-31 16:44:07 +02:00 |
|
stat-shadow.c
|
perf stat: Add computation of TopDown formulas
|
2016-06-06 17:04:16 -03:00 |
|
stat.c
|
perf stat: Zero all the 'ena' and 'run' array slot stats for interval mode
|
2020-07-22 09:10:51 +02:00 |
|
stat.h
|
perf stat: Reset previous counts on repeat with interval
|
2019-10-17 13:42:17 -07:00 |
|
strbuf.c
|
perf strbuf: Remove redundant va_end() in strbuf_addv()
|
2020-01-04 13:41:05 +01:00 |
|
strbuf.h
|
perf tools: Experiment with cppcheck
|
2016-10-03 11:24:13 -03:00 |
|
strfilter.c
|
tools strfilter: Use __fallthrough
|
2017-07-15 12:16:12 +02:00 |
|
strfilter.h
|
|
|
|
string.c
|
tools string: Use __fallthrough in perf_atoll()
|
2017-07-15 12:16:12 +02:00 |
|
strlist.c
|
perf tools: Add file_only config option to strlist
|
2016-01-12 12:42:07 -03:00 |
|
strlist.h
|
perf tools: Rename strlist_for_each() macros to for_each_entry()
|
2016-06-23 11:35:01 -03:00 |
|
svghelper.c
|
perf svghelper: Fix unchecked usage of strncpy()
|
2019-01-26 09:38:34 +01:00 |
|
svghelper.h
|
perf tools: Remove needless 'extern' from function prototypes
|
2016-03-23 15:06:35 -03:00 |
|
symbol-elf.c
|
perf kcore_copy: Fix module map when there are no modules loaded
|
2020-10-01 20:40:14 +02:00 |
|
symbol-minimal.c
|
perf symbols: Remove symbol_filter_t machinery
|
2016-09-05 11:14:50 -03:00 |
|
symbol.c
|
perf symbols: Fix debuginfo search for Ubuntu
|
2020-06-20 10:24:22 +02:00 |
|
symbol.h
|
perf record: Fix wrong size in perf_record_mmap for last kernel module
|
2019-08-25 10:51:20 +02:00 |
|
symbol_fprintf.c
|
perf symbols: Move fprintf routines to separate object file
|
2016-04-14 19:46:53 -03:00 |
|
syscalltbl.c
|
perf tools: Build syscall table .c header from kernel's syscall_64.tbl
|
2016-04-08 09:58:14 -03:00 |
|
syscalltbl.h
|
perf tools: Allow generating per-arch syscall table arrays
|
2016-04-08 09:58:14 -03:00 |
|
target.c
|
perf target: str_error_r() always returns the buffer it receives
|
2016-07-29 11:54:35 -03:00 |
|
target.h
|
|
|
|
term.c
|
perf tools: Move term functions out of util.c
|
2015-12-09 13:42:02 -03:00 |
|
term.h
|
perf tools: Move term functions out of util.c
|
2015-12-09 13:42:02 -03:00 |
|
thread-stack.c
|
perf script: Add callindent option
|
2016-06-23 17:04:26 -03:00 |
|
thread-stack.h
|
perf script: Add callindent option
|
2016-06-23 17:04:26 -03:00 |
|
thread.c
|
perf db-export: Fix thread__exec_comm()
|
2019-08-25 10:51:20 +02:00 |
|
thread.h
|
perf unwind: Move unwind__prepare_access from thread_new into thread__insert_map
|
2016-06-07 12:08:52 -03:00 |
|
thread_map.c
|
perf thread_map: Correctly size buffer used with dirent->dt_name
|
2017-07-15 12:16:13 +02:00 |
|
thread_map.h
|
perf thread_map: Make new_by_tid_str constructor public
|
2016-04-13 10:11:51 -03:00 |
|
tool.h
|
perf tools: Add time conversion event
|
2016-03-31 10:52:24 -03:00 |
|
top.c
|
|
|
|
top.h
|
perf top: Use machine->kptr_restrict_warned
|
2016-05-20 11:43:55 -03:00 |
|
trace-event-info.c
|
perf tools: Cleanup trace-event-info 'tdata' leak
|
2018-11-13 11:16:49 -08:00 |
|
trace-event-parse.c
|
irq_poll: make blk-iopoll available outside the block layer
|
2015-12-11 11:52:24 -08:00 |
|
trace-event-read.c
|
perf tools: Free temporary 'sys' string in read_event_files()
|
2018-11-13 11:16:49 -08:00 |
|
trace-event-scripting.c
|
perf scripting: Avoid leaking the scripting_context variable
|
2017-01-26 08:24:36 +01:00 |
|
trace-event.c
|
perf tools: Introduce trace_event__tp_format_id()
|
2016-07-12 16:14:52 -03:00 |
|
trace-event.h
|
perf tools: Introduce trace_event__tp_format_id()
|
2016-07-12 16:14:52 -03:00 |
|
trigger.h
|
perf tools: Fix trigger class trigger_on()
|
2018-03-18 11:18:50 +01:00 |
|
tsc.c
|
perf tools: Use 64-bit shifts with (TSC) time conversion
|
2016-03-08 10:11:18 +01:00 |
|
tsc.h
|
perf jit: Add support for using TSC as a timestamp
|
2016-04-01 18:42:55 -03:00 |
|
unwind-libdw.c
|
perf report: Include partial stacks unwound with libdw
|
2019-02-20 10:18:30 +01:00 |
|
unwind-libdw.h
|
|
|
|
unwind-libunwind-local.c
|
perf report: Fix off-by-one for non-activation frames
|
2018-04-13 19:48:05 +02:00 |
|
unwind-libunwind.c
|
perf unwind: Add initialized arg into unwind__prepare_access
|
2016-07-04 20:27:12 -03:00 |
|
unwind.h
|
perf unwind: Add initialized arg into unwind__prepare_access
|
2016-07-04 20:27:12 -03:00 |
|
usage.c
|
perf tools: Simplify die() mechanism
|
2016-03-23 12:32:31 -03:00 |
|
util.c
|
perf tools: Fix copyfile_offset update of output offset
|
2018-04-13 19:48:31 +02:00 |
|
util.h
|
perf tools: No need to include bitops.h in util.h
|
2019-05-31 06:48:13 -07:00 |
|
values.c
|
|
|
|
values.h
|
|
|
|
vdso.c
|
perf tools: Find right DSO taking into account if binary is 32 or 64-bit
|
2016-06-23 10:25:58 -03:00 |
|
vdso.h
|
|
|
|
xyarray.c
|
|
|
|
xyarray.h
|
|
|
|
zlib.c
|
|
|