[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1463126174-119290-1-git-send-email-wangnan0@huawei.com>
Date: Fri, 13 May 2016 07:55:57 +0000
From: Wang Nan <wangnan0@...wei.com>
To: <acme@...nel.org>
CC: <arnaldo.melo@...il.com>, <linux-kernel@...r.kernel.org>,
Wang Nan <wangnan0@...wei.com>,
Arnaldo Carvalho de Melo <acme@...hat.com>,
He Kuang <hekuang@...wei.com>, Jiri Olsa <jolsa@...nel.org>,
Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>,
Namhyung Kim <namhyung@...nel.org>,
"Peter Zijlstra" <peterz@...radead.org>,
Zefan Li <lizefan@...wei.com>, <pi3orama@....com>
Subject: [PATCH 00/17] perf tools: Support overwritable ring buffer
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
Wang Nan (17):
perf tools: Extract __perf_evlist__mmap_read()
perf tools: Add evlist channel helpers
perf tools: Automatically add new channel according to evlist
perf tools: Operate multiple channels
perf record: Prevent reading invalid data in record__mmap_read
perf tools: Squash overwrite setting into channel
perf record: Don't read from and poll overwrite channel
perf record: Don't poll on overwrite channel
perf tools: Detect avalibility of write_backward
perf tools: Enable overwrite settings
perf tools: Set write_backward attribut bit for overwrite events
perf tools: Record fd into perf_mmap
perf tools: Add API to pause a channel
perf record: Rename variable to make code clear
perf record: Read from backward ring buffer
perf record: Toggle overwrite ring buffer for reading
perf tools: Don't warn about out of order event if write_backward is
used
tools/perf/builtin-record.c | 207 +++++++++++++++++++++++--
tools/perf/perf.h | 2 +
tools/perf/util/evlist.c | 332 ++++++++++++++++++++++++++++++++++++-----
tools/perf/util/evlist.h | 67 ++++++++-
tools/perf/util/evsel.c | 17 +++
tools/perf/util/evsel.h | 3 +
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 | 11 ++
tools/perf/util/session.c | 22 ++-
11 files changed, 625 insertions(+), 60 deletions(-)
Cc: Arnaldo Carvalho de Melo <acme@...hat.com>
Cc: He Kuang <hekuang@...wei.com>
Cc: Jiri Olsa <jolsa@...nel.org>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>
Cc: Namhyung Kim <namhyung@...nel.org>
Cc: Peter Zijlstra <peterz@...radead.org>
Cc: Wang Nan <wangnan0@...wei.com>
Cc: Zefan Li <lizefan@...wei.com>
Cc: pi3orama@....com
--
1.8.3.4
Powered by blists - more mailing lists