• Wang Nan's avatar
    perf tools: Introduce perf hooks · a074865e
    Wang Nan authored
    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: default avatarWang 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.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    a074865e
perf-hooks.h 790 Bytes