lkml.org 
[lkml]   [2016]   [May]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH v4 0/7] perf tools: Support overwritable ring buffer
Date
This patch set enables daemonized perf recording by utilizing
overwritable backward ring buffer. With this feature one can
put perf background, and dump ring buffer records by a SIGUSR2
when he/she find something unusual. For example, following
command record system calls, schedule events and samples on cpu cycles
continously:

# perf record -g -e cycles -e raw_syscalls:*/call-graph=no/ \
-e sched:sched_switch/call-graph=no/ \
--switch-output --overwrite -a

Then by sending SIGUSR2 to perf when lagging is happen, we get multiple
perf.data output, each of them correspond a abnormal event, and the data
size is reasonable:

# ls -l ./perf.data*
-rw------- 1 root root 5122165 May 13 23:51 ./perf.data.2016051323511683
-rw------- 1 root root 5135093 May 13 23:51 ./perf.data.2016051323512107
-rw------- 1 root root 5135213 May 13 23:51 ./perf.data.2016051323512215
-rw------- 1 root root 5135157 May 13 23:51 ./perf.data.2016051323512387

v1 -> v2: Totally redesign: drop the principle of 'channal', use
auxiliary evlist instead. Fix missing documentation.

v2 -> v3: Rename perf_evlist__toggle_paused() to perf_evlist__pause/resume.

v3 -> v4: Update commit message to describe auxiliary evlist more clearly.

Wang Nan (7):
perf evlist: Introduce aux perf evlist
perf tools: Don't poll and mmap overwritable events
perf tools: Enable overwrite settings
perf record: Introduce rec->overwrite_evlist for overwritable events
perf record: Toggle overwrite ring buffer for reading
perf tools: Don't warn about out of order event if write_backward is
used
perf tools: Check write_backward during evlist config

tools/perf/Documentation/perf-record.txt | 14 ++
tools/perf/arch/x86/util/tsc.c | 2 +
tools/perf/builtin-record.c | 283 +++++++++++++++++++++++++++----
tools/perf/perf.h | 1 +
tools/perf/util/evlist.c | 52 ++++--
tools/perf/util/evlist.h | 3 +
tools/perf/util/evsel.c | 27 +--
tools/perf/util/evsel.h | 15 ++
tools/perf/util/parse-events.c | 20 ++-
tools/perf/util/parse-events.h | 2 +
tools/perf/util/parse-events.l | 2 +
tools/perf/util/record.c | 17 ++
tools/perf/util/session.c | 22 ++-
13 files changed, 399 insertions(+), 61 deletions(-)

Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com

--
1.8.3.4

\
 
 \ /
  Last update: 2016-05-24 04:41    [W:0.146 / U:0.292 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site