]> git.baikalelectronics.ru Git - kernel.git/commit
perf tools: Introduce perf hooks
authorWang Nan <wangnan0@huawei.com>
Sat, 26 Nov 2016 07:03:28 +0000 (07:03 +0000)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 29 Nov 2016 15:13:27 +0000 (12:13 -0300)
commit097bf95ed89d82eb87cdbd7939f50720633b2528
tree774e0abac8cf015dad77638c3c79aa56609dbb82
parent0444b2c6c2f9bea2c6884d41463b0bfb32922773
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>
tools/perf/builtin-record.c
tools/perf/tests/Build
tools/perf/tests/builtin-test.c
tools/perf/tests/perf-hooks.c [new file with mode: 0644]
tools/perf/tests/tests.h
tools/perf/util/Build
tools/perf/util/perf-hooks-list.h [new file with mode: 0644]
tools/perf/util/perf-hooks.c [new file with mode: 0644]
tools/perf/util/perf-hooks.h [new file with mode: 0644]