2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-25 05:34:00 +08:00
linux-next/tools/perf/util
Jiri Olsa 46b3722cc7 perf tools: Fix struct comm_str removal crash
We occasionaly hit following assert failure in 'perf top', when processing the
/proc info in multiple threads.

  perf: ...include/linux/refcount.h:109: refcount_inc:
        Assertion `!(!refcount_inc_not_zero(r))' failed.

The gdb backtrace looks like this:

  [Switching to Thread 0x7ffff11ba700 (LWP 13749)]
  0x00007ffff50839fb in raise () from /lib64/libc.so.6
  (gdb)
  #0  0x00007ffff50839fb in raise () from /lib64/libc.so.6
  #1  0x00007ffff5085800 in abort () from /lib64/libc.so.6
  #2  0x00007ffff507c0da in __assert_fail_base () from /lib64/libc.so.6
  #3  0x00007ffff507c152 in __assert_fail () from /lib64/libc.so.6
  #4  0x0000000000535373 in refcount_inc (r=0x7fffdc009be0)
      at ...include/linux/refcount.h:109
  #5  0x00000000005354f1 in comm_str__get (cs=0x7fffdc009bc0)
      at util/comm.c:24
  #6  0x00000000005356bd in __comm_str__findnew (str=0x7fffd000b260 ":2",
      root=0xbed5c0 <comm_str_root>) at util/comm.c:72
  #7  0x000000000053579e in comm_str__findnew (str=0x7fffd000b260 ":2",
      root=0xbed5c0 <comm_str_root>) at util/comm.c:95
  #8  0x000000000053582e in comm__new (str=0x7fffd000b260 ":2",
      timestamp=0, exec=false) at util/comm.c:111
  #9  0x00000000005363bc in thread__new (pid=2, tid=2) at util/thread.c:57
  #10 0x0000000000523da0 in ____machine__findnew_thread (machine=0xbfde38,
      threads=0xbfdf28, pid=2, tid=2, create=true) at util/machine.c:457
  #11 0x0000000000523eb4 in __machine__findnew_thread (machine=0xbfde38,
  ...

The failing assertion is this one:

  REFCOUNT_WARN(!refcount_inc_not_zero(r), ...

The problem is that we keep global comm_str_root list, which
is accessed by multiple threads during the 'perf top' startup
and following 2 paths can race:

  thread 1:
    ...
    thread__new
      comm__new
        comm_str__findnew
          down_write(&comm_str_lock);
          __comm_str__findnew
            comm_str__get

  thread 2:
    ...
    comm__override or comm__free
      comm_str__put
        refcount_dec_and_test
          down_write(&comm_str_lock);
          rb_erase(&cs->rb_node, &comm_str_root);

Because thread 2 first decrements the refcnt and only after then it removes the
struct comm_str from the list, the thread 1 can find this object on the list
with refcnt equls to 0 and hit the assert.

This patch fixes the thread 1 __comm_str__findnew path, by ignoring objects
that already dropped the refcnt to 0. For the rest of the objects we take the
refcnt before comparing its name and release it afterwards with comm_str__put,
which can also release the object completely.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Lukasz Odzioba <lukasz.odzioba@intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Cc: kernel-team@lge.com
Link: http://lkml.kernel.org/r/20180720101740.GA27176@krava
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2018-07-24 14:54:03 -03:00
..
c++ perf tools: Fix a clang 7.0 compilation error 2018-06-25 11:59:37 -03:00
cs-etm-decoder perf cs-etm: Introduce invalid address macro 2018-07-24 14:48:22 -03:00
include License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
intel-pt-decoder perf intel-pt: Fix packet decoding of CYC packets 2018-06-25 11:59:36 -03:00
libunwind License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
scripting-engines perf script python: Fix dict reference counting 2018-07-11 09:45:24 -04:00
annotate.c perf annnotate: Make __symbol__inc_addr_samples handle src->histograms == NULL 2018-06-06 12:52:08 -03:00
annotate.h perf annotate: Move objdump_path to struct annotation_options 2018-06-04 10:28:53 -03:00
arm-spe-pkt-decoder.c perf tools: Add ARM Statistical Profiling Extensions (SPE) support 2018-01-17 10:23:31 -03:00
arm-spe-pkt-decoder.h perf tools: Add ARM Statistical Profiling Extensions (SPE) support 2018-01-17 10:23:31 -03:00
arm-spe.c perf tools: Add ARM Statistical Profiling Extensions (SPE) support 2018-01-17 10:23:31 -03:00
arm-spe.h perf tools: Add ARM Statistical Profiling Extensions (SPE) support 2018-01-17 10:23:31 -03:00
auxtrace.c perf tools: Use kallsyms__is_function() 2018-04-26 13:47:14 -03:00
auxtrace.h perf auxtrace: Add missing parameters from kernel-doc comments 2018-03-07 10:22:26 -03:00
block-range.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
block-range.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bpf-loader.c perf bpf: Fix NULL return handling in bpf__prepare_load() 2018-05-30 15:35:31 -03:00
bpf-loader.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bpf-prologue.c docs: Fix some broken references 2018-06-15 18:10:01 -03:00
bpf-prologue.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
branch.c perf util: Create branch.c/.h for common branch functions 2017-07-18 23:14:40 -03:00
branch.h perf report: Tag branch type/flag on "to" and tag cycles on "from" 2017-07-25 22:46:35 -03:00
Build perf tools: Remove dead quote.[ch] code 2018-06-04 10:28:50 -03:00
build-id.c perf thread: Make thread__find_map() return the map 2018-04-26 13:47:08 -03:00
build-id.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cache.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01: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 unwind: Do not look just at the global callchain_param.record_mode 2018-01-17 10:23:32 -03:00
callchain.h perf unwind: Do not look just at the global callchain_param.record_mode 2018-01-17 10:23:32 -03:00
cgroup.c perf cgroup: Make evlist__find_cgroup() more compact 2018-06-04 10:28:50 -03:00
cgroup.h perf cgroup: Make the cgroup name be const char * 2018-03-07 10:22:26 -03:00
cloexec.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cloexec.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
color.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
color.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
comm.c perf tools: Fix struct comm_str removal crash 2018-07-24 14:54:03 -03:00
comm.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
compress.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
config.c perf config: Call perf_config__init() lazily 2018-05-16 16:11:09 -03:00
config.h perf config: Call perf_config__init() lazily 2018-05-16 16:11:09 -03:00
counts.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
counts.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cpumap.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cpumap.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cs-etm.c perf cs-etm: Bail out immediately for instruction sample failure 2018-07-24 14:48:32 -03:00
cs-etm.h coresight: Move to SPDX identifier 2018-04-19 12:29:41 -03:00
ctype.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
data-convert-bt.c perf tools: Add struct perf_data_file 2017-10-30 13:37:37 -03:00
data-convert-bt.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
data-convert.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
data.c perf tools: Move conditional O_CLOEXEC to util.h 2018-01-23 09:48:20 -03:00
data.h Merge branch 'linus' into perf/core, to fix conflicts 2017-11-07 10:30:18 +01:00
db-export.c perf symbols: Unify symbol maps 2018-04-27 10:47:06 -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 perf debug: Avoid setting 'quiet' to 'true' unnecessarily 2018-03-16 16:39:02 -03:00
debug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
demangle-java.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
demangle-java.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
demangle-rust.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
demangle-rust.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drv_configs.c perf tools: Include errno.h where needed 2017-04-19 13:01:51 -03:00
drv_configs.h perf pmu: Push configuration down to PMU driver 2016-09-22 12:19:41 -03:00
dso.c perf tools: Fix symbol and object code resolution for vdso32 and vdsox32 2018-06-06 12:52:04 -03:00
dso.h perf symbols: Unify symbol maps 2018-04-27 10:47:06 -03:00
dump-insn.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dump-insn.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dwarf-aux.c perf config: Rename to HAVE_DWARF_GETLOCATIONS_SUPPORT 2018-04-02 13:50:24 -03:00
dwarf-aux.h perf probe: Match linkage name with mangled name 2016-09-29 11:17:08 -03:00
dwarf-regs.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
env.c perf machine: Add nr_cpus_avail() 2018-05-22 10:52:49 -03:00
env.h perf machine: Add nr_cpus_avail() 2018-05-22 10:52:49 -03:00
event.c perf machine: Synthesize and process mmap events for x86 PTI entry trampolines 2018-05-23 10:26:39 -03:00
event.h perf machine: Synthesize and process mmap events for x86 PTI entry trampolines 2018-05-23 10:26:39 -03:00
evlist.c perf evlist: Introduce force_leader() method 2018-05-21 14:40:54 -03:00
evlist.h perf evlist: Introduce force_leader() method 2018-05-21 14:40:54 -03:00
evsel_fprintf.c Merge branch 'linus' into perf/core, to fix conflicts 2017-11-07 10:30:18 +01:00
evsel.c perf evsel: Add has_callchain() helper to make code more compact/clear 2018-06-05 10:09:54 -03:00
evsel.h perf evsel: Add has_callchain() helper to make code more compact/clear 2018-06-05 10:09:54 -03:00
expr.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
expr.y perf tools: Dedup events in expression parsing 2017-08-22 12:19:08 -03:00
find-vdso-map.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
genelf_debug.c tools: Adopt __packed from kernel sources 2017-06-19 15:27:07 -03:00
genelf.c perf tools: Fix spelling mistake: "builid" -> "buildid" 2018-04-30 12:02:03 -03:00
genelf.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
generate-cmdlist.sh perf tools: Rename HAVE_SYSCALL_TABLE to HAVE_SYSCALL_TABLE_SUPPORT 2018-04-12 10:33:31 -03:00
group.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
header.c perf tools: Synthesize GROUP_DESC feature in pipe mode 2018-07-24 14:53:20 -03:00
header.h perf tools: Add MEM_TOPOLOGY feature to perf data file 2018-03-08 11:30:46 -03:00
help-unknown-cmd.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01: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 hists: Reimplement hists__has_callchains() 2018-06-07 14:42:27 -03:00
hist.h perf hists: Clarify callchain disabling when available 2018-07-24 14:37:33 -03:00
intel-bts.c perf thread: Make thread__find_map() return the map 2018-04-26 13:47:08 -03:00
intel-bts.h
intel-pt.c perf intel-pt: Fix "Unexpected indirect branch" error 2018-06-06 12:52:08 -03: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 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
jit.h Merge branch 'linus' into perf/core, to fix conflicts 2017-11-07 10:30:18 +01:00
jitdump.c Merge branch 'linus' into perf/core, to fix conflicts 2017-11-07 10:30:18 +01:00
jitdump.h perf jit: Add unwinding support 2016-10-24 11:07:39 -03:00
kvm-stat.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
levenshtein.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
levenshtein.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
llvm-utils.c perf llvm-utils: Remove bashism from kernel include fetch script 2018-07-11 10:01:51 -03:00
llvm-utils.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
lzma.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
machine.c perf machine: Use last_match threads cache only in single thread mode 2018-07-24 14:53:52 -03:00
machine.h perf machine: Create maps for x86 PTI entry trampolines 2018-05-23 10:24:08 -03:00
map.c perf map: Consider PTI entry trampolines in rip_2objdump() 2018-06-06 12:52:06 -03:00
map.h perf srcline: Introduce map__srcline() to make code more compact 2018-06-04 10:28:52 -03:00
mem2node.c perf tools: Add mem2node object 2018-03-16 13:52:37 -03:00
mem2node.h perf tools: Add mem2node object 2018-03-16 13:52:37 -03:00
mem-events.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mem-events.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
memswap.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
memswap.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
metricgroup.c perf stat: Add transaction flag (-T) support for s390 2018-07-24 14:49:37 -03:00
metricgroup.h perf stat: Add transaction flag (-T) support for s390 2018-07-24 14:49:37 -03:00
mmap.c perf mmap: Be consistent when checking for an unmaped ring buffer 2018-03-27 13:13:38 -03:00
mmap.h perf mmap: Simplify perf_mmap__read_init() 2018-03-08 10:05:53 -03:00
namespaces.c perf tools: Make copyfile_offset() static 2017-09-13 09:49:16 -03:00
namespaces.h perf namespaces: Add more appropriate set of headers 2017-10-23 16:30:54 -03:00
ordered-events.c perf ordered_events: Pass timestamp arg in perf_session__queue_event 2017-11-17 12:14:09 -03:00
ordered-events.h perf ordered_events: Pass timestamp arg in perf_session__queue_event 2017-11-17 12:14:09 -03:00
parse-branch-options.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
parse-branch-options.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
parse-events.c perf parse-events: Handle uncore event aliases in small groups properly 2018-05-30 10:40:44 -03:00
parse-events.h perf parse-events: Handle uncore event aliases in small groups properly 2018-05-30 10:40:44 -03:00
parse-events.l perf record: Enable arbitrary event names thru name= modifier 2018-06-06 12:52:04 -03:00
parse-events.y perf tools: Fix error index for pmu event parser 2018-06-07 15:50:14 -03:00
parse-regs-options.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
parse-regs-options.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
path.c perf utils: Move is_directory() to path.h 2017-12-27 12:15:48 -03:00
path.h perf utils: Move is_directory() to path.h 2017-12-27 12:15:48 -03:00
perf_regs.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
perf_regs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
perf-hooks-list.h perf tools: Introduce perf hooks 2016-11-29 12:13:27 -03:00
perf-hooks.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
perf-hooks.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
PERF-VERSION-GEN License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pmu.c Revert "perf list: Add s390 support for detailed/verbose PMU event description" 2018-07-24 14:48:58 -03:00
pmu.h perf pmu: Pass pmu as a parameter to get_cpuid_str() 2017-12-05 10:24:33 -03:00
pmu.l
pmu.y
print_binary.c Merge branch 'linus' into perf/core, to fix conflicts 2017-11-07 10:30:18 +01:00
print_binary.h Merge branch 'linus' into perf/core, to fix conflicts 2017-11-07 10:30:18 +01:00
probe-event.c perf probe: Use return of map__get() to make code more compact 2018-06-04 10:28:50 -03:00
probe-event.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
probe-file.c tools lib api: Unexport 'tracing_path' variable 2018-05-16 16:27:14 -03:00
probe-file.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
probe-finder.c perf probe: Use right type to access array elements 2018-03-19 13:51:53 -03:00
probe-finder.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pstack.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pstack.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
python-ext-sources perf evsel: Fix swap for samples with raw data 2017-12-27 12:15:56 -03:00
python.c perf python: Reference Py_None before returning it 2018-03-23 16:45:20 -03:00
rb_resort.h Merge branch 'linus' into perf/core, to fix conflicts 2017-11-07 10:30:18 +01:00
rblist.c perf rblist: Create rblist__exit() function 2017-12-05 10:24:31 -03:00
rblist.h perf rblist: Create rblist__exit() function 2017-12-05 10:24:31 -03:00
record.c perf record: Fix crash in pipe mode 2018-03-05 11:52:41 -03:00
rwsem.c perf tools: Provide mutex wrappers for pthreads rwlocks 2017-09-21 13:28:06 -03:00
rwsem.h perf tools: Provide mutex wrappers for pthreads rwlocks 2017-09-21 13:28:06 -03:00
sane_ctype.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
session.c perf evsel: Add has_callchain() helper to make code more compact/clear 2018-06-05 10:09:54 -03:00
session.h perf/core improvements and fixes: 2017-11-18 08:59:27 +01:00
setns.c tools build: Add test for setns() 2017-07-18 23:14:08 -03:00
setup.py perf tools: Fix python extension build for gcc 8 2018-03-19 13:39:46 -03:00
smt.c perf tools: Add utility function to detect SMT status 2017-08-22 12:09:04 -03:00
smt.h perf tools: Add utility function to detect SMT status 2017-08-22 12:09:04 -03:00
sort.c perf srcline: Make hist_entry srcline helper consistent with map's 2018-06-04 10:28:53 -03:00
sort.h perf hists: Make hist_entry__has_callchains() work with 'perf c2c' 2018-06-07 14:27:19 -03:00
srcline.c perf symbols: Store the ELF symbol type in the symbol struct 2018-04-26 13:47:18 -03:00
srcline.h perf report: Fix a wrong offset issue when using /proc/kcore 2018-01-08 11:11:57 -03:00
stat-shadow.c perf stat: Remove a set of shadow stats static variables 2017-12-27 12:15:44 -03:00
stat.c perf stat: Make function perf_stat_evsel_id_init static 2018-03-16 13:56:17 -03:00
stat.h perf stat: Add --table option to display time of each run 2018-04-26 09:30:27 -03:00
strbuf.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
strbuf.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
strfilter.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
strfilter.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
string2.h perf string: Add {strdup,strpbrk}_esc() 2017-12-27 12:15:55 -03:00
string.c perf string: Add {strdup,strpbrk}_esc() 2017-12-27 12:15:55 -03:00
strlist.c perf tools: Remove string.h, unistd.h and sys/stat.h from util.h 2017-04-24 13:43:33 -03:00
strlist.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
svghelper.c perf timechart: Use NSEC_PER_U?SEC 2016-08-23 15:37:33 -03:00
svghelper.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
symbol_fprintf.c perf symbols: Unify symbol maps 2018-04-27 10:47:06 -03:00
symbol-elf.c perf kcore_copy: Amend the offset of sections that remap kernel text 2018-05-23 10:26:44 -03:00
symbol-minimal.c perf symbols: Unify symbol maps 2018-04-27 10:47:06 -03:00
symbol.c perf symbols: Add BSS symbols when reading from /proc/kallsyms 2018-06-06 12:52:09 -03:00
symbol.h perf annotate: Adopt anotation options from symbol_conf 2018-06-04 10:28:53 -03:00
syscalltbl.c perf trace arm64: Use generated syscall table 2018-07-24 14:53:01 -03:00
syscalltbl.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
target.c perf target: str_error_r() always returns the buffer it receives 2016-07-29 11:54:35 -03:00
target.h perf stat: Remove --per-thread pid/tid limitation 2017-12-27 12:15:47 -03:00
term.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
term.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
thread_map.c perf stat: Ignore error thread when enabling system-wide --per-thread 2018-02-27 11:29:21 -03:00
thread_map.h perf stat: Ignore error thread when enabling system-wide --per-thread 2018-02-27 11:29:21 -03:00
thread-stack.c perf tools: Include errno.h where needed 2017-04-19 13:01:51 -03:00
thread-stack.h perf script: Add callindent option 2016-06-23 17:04:26 -03:00
thread.c perf symbols: Unify symbol maps 2018-04-27 10:47:06 -03:00
thread.h perf thread: Make thread__find_map() search all maps 2018-04-26 13:47:17 -03:00
time-utils.c perf util: Allocate time slices buffer according to number of comma 2018-01-17 10:23:36 -03:00
time-utils.h perf util: Allocate time slices buffer according to number of comma 2018-01-17 10:23:36 -03:00
tool.h perf tools: Make the tool's warning messages optional 2018-01-10 12:00:55 -03:00
top.c
top.h perf annotate stdio: Use annotation_options consistently 2018-06-04 10:28:52 -03:00
trace-event-info.c tools lib api fs tracing_path: Introduce get/put_events_file() helpers 2018-05-17 12:01:50 -03:00
trace-event-parse.c perf event-parse: Use pr_warning() 2017-06-27 11:08:14 -03:00
trace-event-read.c perf tools: Provide mutex wrappers for pthreads rwlocks 2017-09-21 13:28:06 -03:00
trace-event-scripting.c perf script: Use HAVE_LIBXXX_SUPPORT to replace NO_LIBXXX 2018-04-12 10:33:29 -03:00
trace-event.c perf parse-events: Use get/put_events_file() 2018-05-17 14:49:36 -03:00
trace-event.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
trigger.h perf tools: Fix trigger class trigger_on() 2018-03-06 11:31:14 -03:00
tsc.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tsc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
units.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
units.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
unwind-libdw.c perf script: Show correct offsets for DWARF-based unwinding 2018-07-24 14:53:11 -03:00
unwind-libdw.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
unwind-libunwind-local.c perf script: Show correct offsets for DWARF-based unwinding 2018-07-24 14:53:11 -03:00
unwind-libunwind.c perf env: Adopt perf_env__arch() from the annotate code 2017-12-27 12:15:52 -03:00
unwind.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
usage.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
util-cxx.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
util.c perf tools: No need to unconditionally read the max_stack sysctls 2018-05-17 16:31:32 -03:00
util.h perf tools: No need to unconditionally read the max_stack sysctls 2018-05-17 16:31:32 -03:00
values.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
values.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vdso.c perf map: Remove enum_type arg to map_groups__first() 2018-04-26 13:47:15 -03:00
vdso.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xyarray.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xyarray.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
zlib.c Merge branch 'linus' into perf/core, to fix conflicts 2017-11-07 10:30:18 +01:00