2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-19 10:44:14 +08:00
linux-next/tools/perf/tests
Wang Nan a074865e60 perf tools: Introduce perf hooks
Perf hooks allow hooking user code at perf events. They can be used for
manipulation of BPF maps, taking snapshot and reporting results. In this
patch two perf hook points are introduced: record_start and record_end.

To avoid buggy user actions, a SIGSEGV signal handler is introduced into
'perf record'. It turns off perf hook if it causes a segfault and report
an error to help debugging.

A test case for perf hook is introduced.

Test result:
  $ ./buildperf/perf test -v hook
  50: Test perf hooks                                          :
  --- start ---
  test child forked, pid 10311
  SIGSEGV is observed as expected, try to recover.
  Fatal error (SEGFAULT) in perf hook 'test'
  test child finished with 0
  ---- end ----
  Test perf hooks: Ok

Signed-off-by: Wang Nan <wangnan0@huawei.com>
Cc: Alexei Starovoitov <ast@fb.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Joe Stringer <joe@ovn.org>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/20161126070354.141764-5-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2016-11-29 12:13:27 -03:00
..
attr perf tests: Fix attr tests 2015-04-08 10:49:53 -03:00
.gitignore perf test: Add libbpf relocation checker 2016-01-26 12:10:55 -03:00
attr.c perf subcmd: Create subcmd library 2015-12-17 14:27:14 -03:00
attr.py perf tools: Remove EOL whitespaces 2015-01-21 13:24:31 -03:00
backward-ring-buffer.c perf tools: Fix typo "No enough" to "Not enough" 2016-10-24 11:07:42 -03:00
bitmap.c perf tests: Add test for bitmap_scnprintf function 2016-08-02 16:33:27 -03:00
bp_signal_overflow.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
bp_signal.c perf tests: Fix build on older systems where 'signal' is reserved 2016-02-15 17:33:26 -03:00
bpf-script-example.c perf tests bpf: Use SyS_epoll_wait alias 2016-08-03 19:40:48 -03:00
bpf-script-test-kbuild.c perf test: Enhance the LLVM tests: add kbuild test 2015-11-06 17:49:50 -03:00
bpf-script-test-prologue.c perf test: Test the BPF prologue adding infrastructure 2015-11-18 17:51:04 -03:00
bpf-script-test-relocation.c perf test: Add libbpf relocation checker 2016-01-26 12:10:55 -03:00
bpf.c perf tools: Fix typo "No enough" to "Not enough" 2016-10-24 11:07:42 -03:00
Build perf tools: Introduce perf hooks 2016-11-29 12:13:27 -03:00
builtin-test.c perf tools: Introduce perf hooks 2016-11-29 12:13:27 -03:00
code-reading.c perf symbols: Remove symbol_filter_t machinery 2016-09-05 11:14:50 -03:00
cpumap.c perf tests cpumap: Add missing headers 2016-07-12 15:19:56 -03:00
dso-data.c perf tools: Allow to reset open files counter 2016-06-30 18:27:44 -03:00
dwarf-unwind.c perf tests: Add dwarf unwind test for powerpc 2016-09-29 11:18:21 -03:00
event_update.c perf tests: Replace assignment with comparison on assert check 2016-04-25 20:24:26 -03:00
event-times.c tools: Introduce str_error_r() 2016-07-12 15:19:47 -03:00
evsel-roundtrip-name.c perf evlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:26:15 -03:00
evsel-tp-sched.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
fdarray.c perf test fdarray: Add missing poll.h header 2016-07-12 15:19:56 -03:00
hists_common.c perf hists: Move sort__need_collapse into struct perf_hpp_list 2016-05-05 21:03:58 -03:00
hists_common.h perf tests: Define and use symbolic names for fake symbols 2014-06-01 14:35:11 +02:00
hists_cumulate.c perf tests: Fix hist accumulation test 2016-07-04 19:39:01 -03:00
hists_filter.c perf evlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:26:15 -03:00
hists_link.c perf evlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:26:15 -03:00
hists_output.c perf hists: Move sort__need_collapse into struct perf_hpp_list 2016-05-05 21:03:58 -03:00
is_printable_array.c perf tests: Add is_printable_array test 2016-07-18 19:50:35 -03:00
keep-tracking.c perf evsel: Do not use globals in config() 2016-04-11 22:18:20 -03:00
kmod-path.c perf tests kmod-path: Fix build on ubuntu:16.04-x-armhf 2016-07-22 16:25:44 -03:00
llvm.c perf tools: Remove needless includes from cache.h 2016-07-12 15:19:58 -03:00
llvm.h perf test: Add libbpf relocation checker 2016-01-26 12:10:55 -03:00
make perf jvmti: Plug compilation into perf build 2016-11-14 12:42:47 -03:00
mmap-basic.c perf tests: Add missing pthread.h include for CPU_*() macros 2016-07-12 15:19:53 -03:00
mmap-thread-lookup.c perf test: Use machine__new_host in mmap thread lookup test 2015-12-07 18:12:54 -03:00
openat-syscall-all-cpus.c perf tests: Add missing pthread.h include for CPU_*() macros 2016-07-12 15:19:53 -03:00
openat-syscall-tp-fields.c perf tests openat-syscall-tp-fields: Add some conditional defines 2016-07-12 15:19:54 -03:00
openat-syscall.c tools: Introduce str_error_r() 2016-07-12 15:19:47 -03:00
parse-events.c perf evlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:26:15 -03:00
parse-no-sample-id-all.c perf evlist: Destructors should accept NULL 2016-06-22 10:01:48 -03:00
perf-hooks.c perf tools: Introduce perf hooks 2016-11-29 12:13:27 -03:00
perf-record.c perf tests: Add missing pthread.h include for CPU_*() macros 2016-07-12 15:19:53 -03:00
perf-targz-src-pkg perf tests: Fix tarpkg build test error output redirection 2016-03-24 12:26:41 -03:00
pmu.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
python-use.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
sample-parsing.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
sdt.c perf test: Add a test case for SDT event 2016-07-13 23:09:10 -03:00
stat.c perf tools: Add stat round event synthesize function 2015-12-17 14:55:44 -03:00
sw-clock.c tools: Introduce str_error_r() 2016-07-12 15:19:47 -03:00
switch-tracking.c perf evlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:26:15 -03:00
task-exit.c tools: Introduce str_error_r() 2016-07-12 15:19:47 -03:00
tests.h perf tools: Introduce perf hooks 2016-11-29 12:13:27 -03:00
thread-map.c perf tests: Fix thread map test for -F option 2016-06-30 18:27:44 -03:00
thread-mg-share.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
topology.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
vmlinux-kallsyms.c perf symbols: Remove symbol_filter_t machinery 2016-09-05 11:14:50 -03:00